2/26/2020

Using the Flat Darcula theme(dark mode) in ZAP!!(dev version)


Today I just saw a nice tweet from Simon.
It was about ZAP's Dark Mode support. I did a light retweet, i listen it's already commited and ready to use.
So it hasn't been included in the Weekly version yet, but I'll try it in advance.
트위터를 보던 중 사이먼의 어마어마한 트윗을 보게되었습니다..
바로 ZAP의 Dark 모드 지원에 대한 이야기였는데요. 가볍게 리트윗했더니 이미 commit 된 내용이고 바로 사용해 볼 수 있다고 합니다.
그래서 아직 Weekly 버전에도 반영되지 않았지만, 미리 체험해보기로 하겠습니다.


Commit?

I think this commit is a code for a new theme.
아마 이 커밋인 것 같네요.

https://github.com/zaproxy/zaproxy/commit/53679ebc57e00b79da2f8f012e4059423e77ca78

Pulling and Build ZAP

$ git pull -v 


Build to weekly version
Weekly로 빌드해줍시다.

$ ZAP_WEEKLY_ADDONS_NO_TEST=true ./gradlew :zap:prepareDistWeekly && \


ZAP 빌드 경험이 있다면 아시겠지만.. 매우 느려요 (very slow..)

Once the build is complete, results will be generated in the path below.
빌드가 완료되면 아래 디렉토리에 생성됩니다.


$ cd zap/build/distFilesWeekly


Run ZAP!
ZAP을 실행해줍니다.

$ ./zap.sh


Change Look and feel! Options > Display > Look and Feel
Options > Display > Look and Feel 에서 바꿔줍시다.




and reboot ZAP!

오 만족스럽네요!

https://i.giphy.com/103liSxCY1NpLO.gif




Share: | Coffee Me:

2/15/2020

Find testing point using tomnomnom's tool, for bugbounty!

I recently watched a video that looked for inspection points in a unique way from Stok's video(interviewed tomnomnom)
So, today, I'm going to introduce you to some of the tools and techniques introduced in that video.
최근에 Stok 영상 중 tomnomnom 를 인터뷰한게 있어서 보던 중 특이한 방식으로 점검 포인트를 찾는 영상을 보게되었습니다.
그래서, 오늘은 해당 영상에서 소개된 툴과 기법들 중 일부를 가볍게 소개하려고 합니다. (저도 정리가 필요해서리..)

꼭 영상 한번 보세요! 최고입니다!!(Please watch the video! It's the best!!!!)

Pre-install

First of all, we're going to use four tools that tomnomnom created. Please install it.
우선 tomnomnom 가 만든 4가지 도구를 사용할겁니다. 설치해주세요.

assetfinder , httprobe , meg , gf

install script

go get -u github.com/tomnomnom/assetfinder
go get -u github.com/tomnomnom/httprobe
go get -u github.com/tomnomnom/meg
go get -u github.com/tomnomnom/gf
cp -r ~/go/src/github.com/tomnomnom/gf/examples ~/.gf

set command alias

vim {your-rc} # vimrc, zshrc, etc...

alias assetfinder='/Users/hahwul/go/bin/assetfinder'
alias httprobe='/Users/hahwul/go/bin/httprobe'
alias meg='/Users/hahwul/go/bin/meg'
alias gf='/Users/hahwul/go/bin/gf'

Find subdomain and asset

Subdomain enum actually has a lot of tools. Although you can use the assetfinder를 created by tomnomnom, it is important to use as many tools as you can, such as Amass and Subfinder, to get a lot of subdomain lists.
Subdomain enum은 사실 도구가 굉장히 많습니다. tomnomnom 가 만든 assetfinder를 사용해도 좋지만 이와 함께 Amass와 Subfinder등 최대한 도구를 많이 사용해서 서브 도메인 리스트를 많이 확보하는게 중요합니다.



$ assetfinder -subs-only {target-domain} >> domains
$ subfinder -d {target-domain} >> domains


이런식으로 파일 하나에 도메인을 다 밀어넣은 후 중복제거만 해주면 됩니다.

Make HTTP/HTTPS URLS

this time we're going to analyze the http response, so we'll sort it into the http/https domain. The http/https url list can be obtained using the httporbe and tee commands as follows:
보통은 식별한 서브도메인 기준으로 Takeover 체크 후 스캔을 돌리던 개별적으로 보던 하는데요, 이번엔 http response를 분석할 것이기 때문에 http/https 도메인으로 정리해줍니다. httporbe와 tee 명령을 이용해 아래와 같이 http/https url 리스트를 확보할 수 있습니다.
httprobe is making http/https list

$ cat domains | httprobe | tee hosts



In my case... i run my private tools that built to identify and use that data as back data.
저의 경우는.. 이 과정까지는 따로 구축한 도구를 돌려 식별하고 있어서 해당 데이터를 백 데이터로 사용합니다.



Meg!

Get http response headers and body, Meg is a tool that stores the http response header and body as a file.
Meg는 http response header와 body를 파일로 저장하는 도구입니다.

$ meg -d 1000 -v /

Once completed, multiple files will be created for each domain, as shown below. Inside the file, a http response (header + body) is stored.
작업이 완료되면 아래와 같이 도메인별로 여러개의 파일이 생기게 됩니다. 해당 파일 내부에는 http response(header + body)가 저장됩니다.



index 파일을 보면 파일과 url, response code를 확인할 수 있어요

내부에는 curl 의 결과가 들어있습니다.

Find point with gf

gf is wrapper around grep, to help you grep for things.
gf는 개량형 grep이라고 보시면 좋습니다. grep으로 직접 찾아도 되지만, 미리 패턴을 정의해놓고 쓰기에는 gf가 더 편합니다.

기본적으로 아래 리스트를 지원합니다.

$ gf -list
aws-keys
base64
cors
debug-pages
firebase
fw
go-functions
http-auth
ip
json-sec
meg-headers
php-curl
php-errors
php-serialized
php-sinks
php-sources
s3-buckets
sec
servers
strings
takeovers
upload-fields
urls

grap flag and regular expression are stored json file
내용을 보면.. grep flag와 정규식이 저장되어 있습니다.

$ cat ~/.gf/aws-keys.json
{
    "flags": "-HanrE",
    "pattern": "([^A-Z0-9]|^)(AKIA|A3T|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{12,}"
}

This makes it easy to place grep run the current directory. This way, I can see the CORS setting at once.
이를 통해 현재 디렉토리 내부에서 grep을 쉽게 걸 수 있습니다. 이런식으로 cors 설정을 한번에 보거나..

$ gfgf cors
./global-esports-cms.pubg.com/85085c2e01f50f05ce006627b0aa0963e9413625:14:< Access-Control-Allow-Origin: *
./global-esports-cms.pubg.com/42612c024c5d21ec68c677eaa3bc85e1d6b2565f:13:< Access-Control-Allow-Origin: *

Can also check where base64 data is used.
base64 데이터가 사용되는 부분을 체크할 수도 있습니다.

$ gfgf base64
./forums.pubg.com/18f5e3af7e0599284b89bc69d7bb095cfbc65b42:13:-aHR0cHM6Ly9mb3J1bXMucHViZy5jb20vcmVnaXN0ZXIvP2RvPW9wSWZyYW1lUmVmbG93UHJvY2Vzcw==
-aHR0cHM6Ly9mb3J1bXMucHViZy5jb20v
./forums.pubg.com/681c348f74161e12908368f601f4d3c785085c45:18:-aHR0cHM6Ly9mb3J1bXMucHViZy5jb20vcmVnaXN0ZXIvP2RvPW9wSWZyYW1lUmVmbG93UHJvY2Vzcw==
-aHR0cHM6Ly9mb3J1bXMucHViZy5jb20v

The defined regular expression is useful, so if you try it a few times, you'll get some testing points. In addition, there are patterns that can only occur in certain companies, so you can test them with a regular expression.
정의된 정규식이 쓸만한편이라 몇번 해보시면 테스팅 포인트가 좀 잡힙니다. 추가로.. 특정 기업에서만 발생할 수 있는 패턴들도 있으니 적절하게 정규식 추가해서 테스트해보시면 좋습니다.

Now start happy hacking with the identified data!

https://i.giphy.com/3oz8xCxj4400yvfgDm.gif

Share: | Coffee Me:

2/13/2020

XSpear 1.4 Released! Find XSS! (Supported HTML report now!)

Hi Hackers and Bugbounty hunters!
I planned XSpear for version 1.4 by February and I'm glad to be able to complete it within the time frame.

This update adds several features and HTML reports. In the case of HTML Report, I look forward to hearing your comments or PR because we need a lot of improvements in design and content.

Change log

  • Supported HTML report
  • Supported custom payload options
  • Supported only paramter analysis mode
  • Added new analysis pattern
  • Bug fixed (--raw option)

None changed issue
  • I have tried to modify the thread to improve performance, but the existing code is much faster and stays current.
MileStone

HTML Report



How to update?

$ gem update XSpear
Share: | Coffee Me:

2/08/2020

First new XSS Payload of 2020(svg animate, onpointerrawupdate)

Hi hackers and bugbounty hunter!
Recently, two previously unknown XSS Payloads were disclosure one after another. It's not a payload that's very difficult to understand, so I'll share it briefly!
최근 기존에 알려지지 않은 XSS Payload 2개가 연달아 공개됬습니다. 이해에 큰 어려움이 있는 페이로드는 아니니, 간략하게만 내용 공유할게요!

SVG Aniamte XSS

<svg><animate xlink:href=#xss attributeName=href dur=5s repeatCount=indefinite keytimes=0;0;1 values="https://portswigger.net?&semi;javascript:alert(45)&semi;0" /><a id=xss><text x=20 y=20>XSS</text></a>


onpointerrawupdate event handler for XSS

<div onpointerrawupdate=alert(45)>xss</div>


Updated XSpear (1.3.3)

I added this two payload in xspear. Please use it after the update.
2일전인가.. XSpear에는 반영해뒀습니다.

https://github.com/hahwul/XSpear/issues/49
https://github.com/hahwul/XSpear/issues/50

1.3.3으로 업데이트 후 사용하시면 기본적으로 포함됩니다 : )

$ gem update XSpear


Reference

https://twitter.com/XssPayloads/status/1225426346366701568
https://portswigger.net/research/svg-animate-xss-vector
Share: | Coffee Me:

2/04/2020

BurpSuite 2020.01 Release Review, Change HTTP Message Editor!

The first release of Burp 2020.01 was released recently. I think end of last year, the Navigation Embedded Browser in the 2.1.05 release may not be a big change because of its impact, but it has improved a lot in usability because this update.
최근에 Burp 2020.01 첫 릴리즈가 나왔습니다. 사실 작년 말쯤에 2.1.05 릴리즈에서의 Navigation Embedded Browser가 워낙 임팩트가 있어서 큰 변화라고는 못느끼겠지만, 그래도 사용성에 있어서 굉장히 많은 부분들이 개선되었습니다.

Navigation Embedded Browser review post

The focus of this update is a change in HTTP message editor.
이번 업데이트의 중점은 HTTP message editor 의 변화입니다.

TL;DR

There were five major updates. The Syntax highlighting function has been enhanced.
크게 5가지 업데이트 사항이 있었습니다. 전반적으로 Syntax highlighting 기능이 강화됬다고 보시면 됩니다.

Syntax colorising for JavaScript, JSON, and CSS.
Syntax colorising is now dynamically updated as you type.
Line numbers.
Code folding.
Performance improvements.

Syntax colorising for JavaScript, JSON, and CSS


Syntax colorising dynamically updated type.

Line numbers



Code folding

This is a really necessary function, it's cool!



Performance improvements

I can't test it, but I believe it's better.
제가 직접 측정할 순 없겠지만 좋아졌을거라 믿어야겠죠..ㅋㅋ

Review and Conclusion

I'm very satisfied because it's one of the most viewed areas for the analyst.
사실 분석하는 사람 입장에서 가장 많이 보는 영역 중 하나라서 굉장히 만족스럽습니다. PortSwigger팀은 역시 불편한 부분을 알아서 잘 해소해주는 느낌이네요 ;)

하지만 업데이트는 역시나 느립니다

References


https://portswigger.net/burp/releases
Share: | Coffee Me:

2/03/2020

Metasploit의 목소리가 궁금하다면 "sounds" 플러그인!

새벽에 심심해서 Metasploit 가지고 놀던 중 의외의 이름의 플러그인 하나를 발견했습니다.



Sound???? 사운드 관련된 기능을 테스트하는 모듈인가.. 싶어 궁금증에 load 해봤습니다.

HAHWUL > load sounds
[*] Successfully loaded plugin: sounds


다만 별다른 변화도 없고 help에 명령어가 떠있는것도 아니라서 긴가민가하던 중..


몇몇 기능에서 소리가 나오네요.

wow... / https://i.giphy.com/OzHKDlB6CqwZG.gif

어떤 소리들을 지원할까?

궁금증에 git에서 소스코드를 찾아봤습니다.
https://github.com/rapid7/metasploit-framework/blob/master/plugins/sounds.rb

기대했던 것(tts가 내장되서 바로 변환하고 읽어주는..)은 아니였고, exploit 등의 상태에 따라 지장된 소리를 제공해주는 플러그인이였네요.

  def init_sound_paths
    @try_harder     = 'try_harder'
    @excellent      = 'excellent'
    @got_a_shell    = 'got_a_shell'
    @exploit_worked = 'exploit_worked'
    @wonderful      = 'wonderful'
  end


특별한 기능이 있는건 아니지만, 그냥 재미있어서 블로그에 남겨봅니다 :)
Share: | Coffee Me:

1/30/2020

When frequently db connection is lost in Metasploit, How to solved

Sometimes DB Connection suddenly disappears when you are using Metasploit.
간혹 Metasploit을 사용하고 있으면 갑자기 DB Connection이 사라지곤합니다.
Database not connected

it's easy to solve with simple tricks.
제 환경에서도 특정 PC에서 유독 잘 끊어지는데요, 간단한 트릭으로 쉽게 해결이 가능합니다.

Change timeout in config

By default, Metasploit's DB setting has a timeout of 5 sec. It's usually a timeout that won't be a problem at all, but there are times when traffic is backed up (when there's a lot of scanning or other work) and you get more than 5 seconds.
기본적으로 Metasploit의 DB 설정에는 timetout이 5로 잡혀있습니다. 보통은 전혀 지장없을 timeout이지만, 전체적으로 트래픽이 밀릴 때 (스캔이나 각종 작업이 많이 돌아갈 때) 5초를 넘기는 경우가 발생합니다.

In case of this, it's much better to increase the timeout figure to some extent to reduce the hassle of using it.
이런 경우를 대비해서 timeout 수치를 어느정도 늘려줘서 사용하는게 번거로운 작업을 줄일 수 있어서 훨씬 좋습니다.

# before
timeout: 5

# after
timeout: 10

If used with a git clone, it is specified in the directory config/database.yml, and is located in the path below if installed with a MacOS pkg.
직접 clone 해서 사용하는 경우 해당 디렉토리 내 config/database.yml에 명시되어 있으며 MacOS pkg로 설치한 경우 아래 경로에 위치합니다. (아마 대부분 다 비슷합니다.)

/opt/metasploit-framework/embedded/framework/config/database.yml
# To set up a metasploit database, follow the directions hosted at:
# http://r-7.co/MSF-DEV#set-up-postgresql
#
# Kali Linux and the Omnibus installers both include an easy wrapper script for
# managing your database, which may be more convenient than rolling your own.development: &pgsql
  adapter: postgresql
  database: *****
  username: *****
  password: *****
  host: localhost
  port: 5432
  pool: 200
  timeout: 10  # (5=>10 등 높게 설정, Increase the timeout.)

alias to re-connection commands

If you have to set the timeout short or if it keeps disconnecting even if you stretch it long, you have to reconnect the db, which is a very troublesome process. If defined as yml, -y option is available, but if used individually, db address, user, passwd, etc. must be entered in the command line, so it is a bit troublesome. So if you use yml, you can easy re-connect database it with alias.
어쩔수 없이 timeout을 짧게 잡아야하거나, 길게 늘여줘도 자꾸 끊긴다면 db를 재접속 해야하는데요, 이 과정이 굉장히 귀찮기 나름입니다. yml로 정의 한 경우 -y 옵션으로 가능하지만, 개별적으로 사용하신다면 db 주소, user , passwd 등의 정보를 command line에서 모두 입력해야하기 때문에 좀 귀찮습니다. 그래서 yml을 쓴다면 그대로, 없다면 새로 하나 만든 후 alias로 re-connect 하는 명령을 만들어주면 편리합니다.

우선 yml 파일을 이용한 db연결은 아래와 같습니다.
db_connect -y /opt/metasploit-framework/embedded/framework/config/database.yml

Create a command using the alias command inside the metasploit console. my case is dbdb.
metasploit 콘솔 내부에서 alias 명령을 이용해 명령어를 만들어둡시다. 저는 dbdb라고 했어요.

alias dbdb "db_connect -y /opt/metasploit-framework/embedded/framework/config/database.yml"

The command line allows you to reconnect immediately.
dbdb라고 이름을 지정했고, 명령행에서 사용하면 바로 재 연결이 가능합니다.



dbdb
[*] Connected to remote_data_service: (https://localhost:5432). Connection type: http. Connection name: local-https-data-service.

don't want to add to alias every time, so please refer to the article below to make sure that it is registered automatically during init metasploit.
매번 alias에 추가하는것도 귀찮으니 아래 글 참고해서 startup 시 자동 등록되도록 하면 깔끔합니다.

https://www.hahwul.com/2017/07/metasploit-make-custom-msfconsole-with.html
Share: | Coffee Me: