반응형
반응형
반응형

1. nessus 다운로드


https://www.tenable.com/downloads/nessus


위 링크를 통해 다운로드 받으실 수 있습니다. 





자신의 운영체제에 맞는 설치파일을 다운받으시면 됩니다.


저는 kali linux 64bit에 설치할 것이기 때문에, 첫 번째에 있는 설치파일을 다운받았습니다.







2. activation code 얻기


아까 다운로드 페이지 상단에서 get activation code 를 클릭합니다.






오른쪽 nessus home의 register now 클릭





이름과 이메일을 입력해줍니다. 그러면 입력한 메일로 코드가 오게 됩니다.






3. nessus 설치


터미널에서 다운받은 경로에서 아래 명령어를 입력해줍니다.


chmod +x Nessus-8.2.1-debian6_amd64.deb

dpkg -i Nessus-8.2.1-debian6_amd64.deb 


(Nessus-8.2.1-debian6_amd64.deb 는 제가 받은 설치 파일명입니다.)




설치가 완료되면 터미널에 나온 메세지에 따라서


/etc/init.d/nessusd start


로 시작하고

그 아랫줄에 나온 url을 브라우저에 입력해서 접속해 줍니다.




Advanced > add Exepction...





(1/3) 계정 생성





(2/3) 코드 입력






(3/3) 이 부분은 시간이 상당히 오래 걸립니다. 기다리시면 됩니다.






에러가 날 경우, kali linux 기준으로, /opt/nessus/sbin에서 ./nessuscli update 명령어를 실행하면 다시 다운로드를 받을 수 있습니다. 필요 용량은 약 30GB라고 합니다.




설치가 완료되면, 페이지에서 로그인 하시면 됩니다,








4. 사용 방법



New Scan 클릭




저는 basic network scan을 해보겠습니다.





이름, 설명, ip를 입력해주고 save





launch 버튼을 클릭해 스캔을 시작합니다.










스캔이 완료된 후에 들어가보면, 찾은 취약점 정보를 확인할 수 있습니다.


반응형
반응형

이번에는 이번에는 맴버 관련 기능을 구현해보도록 하겠습니다.


목차입니다.



1. 맴버가 서버 접속, 퇴장시 서버 텍스트 채널에 메세지를 보내는 기능

2. 맴버가 서버 접속시 1:1 채팅에 메세지를 보내는 기능

3. 주기적으로 공지메세지를 보내는 기능 (백그라운드로 동작)










1. 맴버가 서버 접속, 퇴장시 서버 텍스트 채널에 메세지를 보내는 기능



먼저 코드를 봅시다.


1
2
3
4
5
6
7
8
9
10
11
@client.event
async def on_member_join(member):
    fmt = '{1.name} 에 오신것을 환영합니다., {0.mention} 님'
    channel = member.server.get_channel("channel_id_here")
    await client.send_message(channel, fmt.format(member, member.server))
 
@client.event
async def on_member_remove(member):
    channel = member.server.get_channel("channel_id_here")
    fmt = '{0.mention} 님이 서버에서 나가셨습니다.'
    await client.send_message(channel, fmt.format(member, member.server))
cs



on_member_join 함수는 맴버가 서버에 들어 왔을 때 실행되는 함수이고,

on_member_remove 함수는 맴버가 서버를 나갔을 때 실행되는 함수입니다.


format를 통해서 {0.mention}  에는 맴버가 언급되고,  {1.name} 에는 서버이름이 자동적으로 대입됩니다.


channel_id_here에 들어갈 id를 찾는 방법은 본문 하단에 설명되어 있습니다.









2. 맴버가 서버 접속시 1:1 채팅에 메세지를 보내는 기능



간단합니다. 아래의 코드를 이용하면 끝입니다.


await client.send_message(member, "내용")


여기서 우리는 맴버가 서버에 들어왔을 때 보내도록 할 것이므로, on_member_join 함수 밑에 두겠습니다.



1
2
3
4
5
6
@client.event
async def on_member_join(member):
    fmt = '{1.name} 에 오신걸 환영합니다, {0.mention} 님'
    channel = member.server.get_channel("channel_id_here")
    await client.send_message(channel, fmt.format(member, member.server))
    await client.send_message(member, "내용")
csv



"내용" 에 원하는 내용을 작성하시면 됩니다.









3. 주기적으로 공지사항등의 메세지를 보내는 기능입니다.



백그라운드로 동작합니다.


코드입니다. :


1
2
3
4
5
6
    async def my_background_task():
        await client.wait_until_ready()
        channel = discord.Object(id='channel_id_here')
        while not client.is_closed:
            await client.send_message(channel, "hi")
            await asyncio.sleep(5
cs


@client.event 가 필요 없습니다.



----------------channel_id_here 구하기---------------


channel_id_here 에 메세지를 보낼 텍스트 채널의 id를 입력해주시면 되는데요.

id를 확인하는 방법은 다음과 같습니다:

1. 디스코드 채널을 웹을 통해 접속한다.

2. 텍스트 채널에 들어간다.

3. URL마지막에 있는 18자리 숫자가 id다.




"hi" 대신에 보낼 메세지를 넣어주시면 됩니다.


await asyncio.sleep(5)

에서 5 대신에 자신이 원하는 시간 간격을 초 단위로 작성하여 주시면 됩니다.


EX) await asyncio.sleep(60*60*24) 이라고 하면 1일마다 메세지를 보내게 됩니다.




이 부분을 다 작성하셨으면 전체 코드에서 하단으로 가셔서 client.run() 부분을 찾습니다.

client.run() 코드 바로 위에 아래의 코드를 추가합니다 :


client.loop.create_task(my_background_task())


그러면


client.loop.create_task(my_background_task())

cleint.run('token')


처럼 됩니다.


만약 discord.errors.Forbidden: FORBIDDEN (status code: 403): Missing Access 이런 오류가 발생한다면

권한 문제이니 서버에서 봇의 권한을 설정해 주시면 됩니다.







전체 코드는 다음 링크를 참조해주세요.


https://github.com/M4ndU/inhun_discord_chat_bot_2/blob/master/inhun_bot.py

반응형

+ Recent posts